IntegrityError user_id可能不是NULL

时间:2010-12-13 17:17:59

标签: django django-forms django-views

这是我的forms.py文件

 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)

在我的观点中我有

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

但是当我尝试提交表单时,它说“IntegrityError:accounts_register.user_id可能不是NULL”,但我的视图中有register.user=request.user。我是否必须通过“Id”或“PK”作为表格的参数或者我犯了错误

1 个答案:

答案 0 :(得分:1)

您可能正在处理AnonymousUser对象,并且ID将始终设置为None。如果您正在运行./manage.py runserver,请在失败的语句之前插入这样的行,尝试使用pdb

import pdb; pdb.set_trace()

这将引导您进入REPL,您可以在其中逐步浏览并探索您的代码。