当前位置: 代码迷 >> python >> 引用用户对象Django时出错
  详细解决方案

引用用户对象Django时出错

热度:105   发布时间:2023-07-14 08:47:30.0
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

request.user是否已通过身份验证? 是AnonymousUser吗?

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

希望这可以帮助!

==编辑==

另外,请注意,即使在request.method不是“ POST”(即“ GET”)的情况下,即使未初始化,也要在RequestContext中引用count_form。