im Versuch, den Standort eines Benutzers zu suchen, die für diese Verwendung GeoIP ich habeUmwandlung Schwimmer in Dezimalzahlen (IP-Adresse Parameter)
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)
und in forms.py ich habe
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)
und in meine Ansichten ich habe
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})
i em die IP-Adresse als "119.153.117.32" zu nehmen, weil ich die Website von Local Loop und GeOI am Zugriff auf P hat kein lat, lon für die Amtsleitung (127.0.0.1). und es gibt keine für lokale Schleife zurück. \ Wenn ich das Formular übermittle, heißt es "Kann float nicht in Dezimal konvertieren. Konvertieren Sie zuerst den float in einen String". Wie kann ich dieses Problem lösen, ist es zwingend erforderlich, es in eine Zeichenfolge umzuwandeln oder gibt es eine bessere Möglichkeit, es zu tun.