i cette chose dans mon fichier models.pygéocodage une adresse IP et enregistrer à l'aide des formulaires modèles
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)
et forms.py j'ai
class registerForm(forms.ModelForm):
class Meta:
model=register
fields = ('latitude', 'longitude', 'Availability', 'Status')
maintenant ce que je veux ici est de géocodage l'adresse IP de l'utilisateur et obtenir la latitude et la longitude automatiquement après le géocodage de l'IP et l'enregistrer dans la base de données. Je ne veux pas permettre à l'utilisateur d'entrer le latitide et la longitude manuellement car ce sera un impair et certainement personne ne voudra le faire manuellement. J'utilise GeoIP pour géocoder l'adresse IP. et dans mon views.py j'ai
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})
je cherche un moyen d'obtenir automatiquement la latitude, de la GeoIP lon et le placer dans le champ de latitude longitude dans les formes afin que les utilisateurs ne doivent pas manuellement entrez-le. puis, après avoir saisi le statut et la disponibilité, les formulaires peuvent être enregistrés dans la base de données. toute aide serait grandement appréciée
j'ai écraser le save method mais les django aboient comme "save() prend à lea st 2 arguments non-mot-clé (1 donné) " – MajorGeek
vous pourriez l'avoir fonctionné maintenant, sinon en appelant la méthode save de la vue passer l'ip_address de la demande en tant que paramètre. – Ashok