2010-11-27 39 views
0

j'ai dans mon views.pyTypeError save() prend au moins 2 arguments non de mots clés (1) donnée

def status_set(request): 
    ip_address= request.META['REMOTE_ADDR'] 
    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}) 

et forms.py ihave

from django.contrib.gis.utils import GeoIP 


    class registerForm(forms.ModelForm): 
     class Meta: 
      model=register 
      fields = ('Availability', 'Status') 

     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 quand je l'ai essayé à submitt la forme qu'elle dit

TypeError à/état-set/ save() prend au moins 2 arguments non de mots clés (1 donné) iam incapable de trouver la solution pour cela. quelle est la raison possible pour cette je pense que je dois passer l'adresse IP comme argument des suggestions

Répondre

2

Le paramètre ip_address est nécessaire afin que vous devez fournir:

register.save(ip_address) 

En outre, vous ne semble utiliser le paramètre ip_address dans la méthode. Probablement vous ne devriez pas avoir des citations aroung ip_address dans la méthode que vous appelez:

lat, lon = g.lat_lon(ip_address) 
+0

i avait aussi essayé ce ting, mais il n'a rien fait – MajorGeek

+0

la réponse de Mark est correct ... dans votre code d'origine 1) vous ne passez pas 'ip_address' de la vue à la méthode save du formulaire, et 2) même si vous l'avez fait, appeler' g.lat_lon ('ip_address') '(notez les guillemets simples) signifie que vous passez une chaîne à g.lat_lon(), pas le paramètre ip_address. –