2010-12-13 5 views
0

c'est mon fichier forms.pyIntegrityError user_id ne peut pas être NULL

def save(self,ip_address, *args, **kwargs): 
     g = GeoIP() 
     lat,lon = g.lat_lon(ip_address) 
     user_location = super(registerForm, self).save() 
     user_location.latitude = lat 
     user_location.longitude = lon 
     user_location.save(*args, **kwargs) 

et mon point de vue j'ai

def status_set(request): 
    if request.method == "POST": 
     rform = registerForm(data = request.POST) 
     if rform.is_valid(): 
      register = rform.save(ip_address='203.99.178.139') 
      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 dit « IntegrityError: accounts_register .user_id ne peut pas être NULL "mais j'ai register.user=request.user dans mes vues. dois-je passer le "Id" ou "PK" comme un argument à des formes ou em faire une erreur

+0

Voir http://stackoverflow.com/questions/3803789/integrityerror-while-saving-a-new-item-to-the-postgresql-db-in-django/7635773 – glarrain

Répondre

1

Vous avez probablement affaire à un objet AnonymousUser et l'ID sera toujours défini sur Aucun. Si vous utilisez ./manage.py runserver, essayez d'utiliser pdb en mettant en ligne comme celui-ci avant la déclaration qui échoue:

import pdb; pdb.set_trace() 

qui vous lancer dans une REPL où vous pouvez parcourir et explorer votre code.

+0

j'ai vérifié à l'aide pdb à l'importation et la le code échoue après cette ligne register = rform.save (ip_address = '203.99.178.139') dois-je le passer en argument aux formes enregistrer la méthode – MajorGeek

+0

Je peux seulement répondre avec peut-être parce que tout dépend du code dans votre registerForm .enregistrer(). Vous pouvez [s] tep dans votre sous-programme save(), aller à l'instruction [n] ext, ou [c] passer une fois à l'invite pdb. Voici un peu d'aide pdb si vous avez du mal à creuser les docs de pdb: http://pythonconquerstheuniverse.wordpress.com/category/the-python-debugger/ – istruble

Questions connexes