在引用用户对象django时出错

时间:2014-03-09 14:48:01

标签: python django django-models django-users

def itemconfirmation(request, pk):
    item = Food_item.objects.get(id=pk)
    userobj = request.user
    user = UserProfile.objects.get(user=userobj)
    if request.method == 'POST':
        count_form = CountForm(data=request.POST)
        if count_form.is_valid():
            countform = count_form.save(commit=False)
            countform.useradno = user.adno
            countform.itemid = item.id
            countform.save()
    c = RequestContext(request, {
                        'item': item, 'count_form': count_form
               })
    return render_to_response('itemconfirmation.html', context_instance=c)

我有一个像这样定义的视图。我在将用户对象扩展到UserProfile时遇到错误,无法用户user.id

1 个答案:

答案 0 :(得分:1)

request.user是否经过身份验证?它是AnonymousUser吗?

UserProfile.objects.get()方法不是用于创建对象,而是用于从数据库获取对象。 如果它不存在则会引发异常。 将UserProfile.objects.create(..)与您可能需要的初始数据一起使用。

希望这有帮助!

== edit ==

另外,请注意,即使在request.method不是" POST"的情况下,它还没有初始化,也在RequestContext中引用count_form。 (即" GET")