私はmodels.pyファイルにこれを持っています
user = models.ForeignKey('auth.User', unique = True)
latitude = models.DecimalField(max_digits=8, decimal_places=6)
longitude = models.DecimalField(max_digits=8, decimal_places=6)
Availability = models.CharField(max_length=8,choices=STATUS_CHOICES, blank= False, null=False)
Status = models.CharField(max_length=50, blank = True, null= True)
そしてforms.pyに私は持っています
class registerForm(forms.ModelForm):
class Meta:
model=register
fields = ('latitude', 'longitude', 'Availability', 'Status')
ここで必要なのは、ユーザーの IP アドレスをジオコーディングし、IP をジオコーディングした後に自動的に緯度と経度を取得してデータベースに保存することです。ユーザーが緯度と経度を手動で入力できるようにしたくありません。これは奇妙なものであり、間違いなく誰も手動で入力したくないでしょう。私は GeoIP を使用して IP アドレスをジオコーディングしています。そして私のviews.pyには
def Userlocation(request):
if request.method == "POST":
rform = registerForm(data = request.POST)
if rform.is_valid():
register = rform.save(commit=False)
register.user=request.user
register.save()
return render_to_response('home.html')
else:
rform = registerForm()
return render_to_response('status_set.html',{'rform':rform})
GeoIP から緯度経度を自動的に取得し、それをフォームの緯度経度フィールドに配置して、ユーザーが手動で入力する必要がないようにする方法を探しています。ステータスと可用性を入力した後、フォームをデータベースに保存できます。どんな助けでも大歓迎です