메신저 이것을 GeoIP가을 이용하여 사용자의 위치를 찾으려고 I가(IP 주소 파라미터)
Class register(models.Model):
user = models.ForeignKey('auth.User', unique = True)
latitude = models.DecimalField(max_digits=12, decimal_places=10)
longitude = models.DecimalField(max_digits=12, decimal_places=10)
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 = ('Availability', 'Status')#'latitude','longitude',
def save(self,ip_address, *args, **kwargs):
g = GeoIP()
lat,lon = g.lat_lon(ip_address)
user_location = super(registerForm, self).save(commit=False)
user_location.latitude = lat
user_location.longitude = lon
user_location.save(*args, **kwargs)
및에있을 내보기는 내가 로컬 루프와 GeoI에서 사이트에 액세스하고 있기 때문에
def status_set(request):
if request.method == "POST":
rform = registerForm(data = request.POST)
print "rejister form request"
if rform.is_valid():
register = rform.save(ip_address='119.153.117.32')
register.user=request.user
register.save(ip_address)
return render_to_response('home.html')
else:
rform = registerForm()
return render_to_response('status_set.html',{'rform':rform})
내가 그들을 "119.153.117.32"로 IP 주소를 가지고 있습니다 P는 로컬 루프 (127.0.0.1)에 대해 위도, 경도를 갖지 않습니다. 로컬 루프의 경우 아무 것도 반환하지 않습니다. "float을 10 진수로 변환 할 수 없다는 메시지가 나타나면 float을 문자열로 변환하십시오."라는 메시지를 submit 할 때 아무 것도 반환하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까? 문자열로 변환하는 것이 의무입니까 아니면 더 좋은 방법일까요?