2010-12-10 5 views
0

je suis en train de auto remplir la latitude et champ de longitude dans mes formes que je fais cette chose de cette façonEssayer de champs auto formulaire de popolate en forme django

 #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) 

et mon point de vue cette chose

#views.py 
    def status_set(request): 
      if request.method == "POST": 
     ip_address=request.META['REMOTE_ADDR'] 
      rform = registerForm(data = request.POST) 
      if rform.is_valid(): 
       register = rform.save(commit=False) 
       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}) 

mais lorsque je tente de soumettre les formulaires, il est dit « save() prend au moins 2 arguments non de mots clés (1 donné) » l'erreur est ici "register = rform.save(commit=False)" i em incapable de le comprendre toute aide sera grandement apprécié en utilisant django 1.1.1 et GeoIP

Répondre

0

Jetez un oeil à votre définition save sur votre registerForm -. vous avez ajouté ipaddress comme argument, mais selon vous, vous ne passent pas dans Si vous voulez continuer à appeler save() la façon dont vous êtes maintenant, faire ipaddress=None dans votre définition de fonction, ou une autre valeur par défaut que vous pouvez gérer.

+0

pouvez-vous s'il vous plaît donner un exemple sur la façon de passer un argument dans les vues à des formes – MajorGeek

+0

Lorsque vous appelez rform.save(), passer dans ipaddress - comme suit: 'reg = rform.save (ipaddress = request.META. GET ('REMOTE_ADDR'), commit = False) ' – girasquid

+0

toujours la même erreur puis-je obtenir un tutoriel ou de la documentation sur le passage des args et ** kwargs ou tout sur comment passer les paramètres à des formes de vues – MajorGeek

Questions connexes