在赋值错误之前引用的局部变量'user'

时间:2017-06-18 20:50:04

标签: python django

我不断收到错误“在分配前引用的局部变量'用户'”。我正在尝试在此函数中复制user =代码行:

def profile_view(request, username):
    user = get_object_or_404(User, username=username)

有了这个功能,你可以在底线看到:

def like_user(request, id):
    pending_like = get_object_or_404(User, id=id)
    user_like, created = UserLike.objects.get_or_create(user=request.user)
    user = get_object_or_404(User, username=user.username)

然而,由于我没有通过用户名进入函数,所以我正在尝试使用user.username,但我得到错误“在分配之前引用的局部变量'用户'”。围绕这个最好的方法是什么?我完全错了吗?我应该尝试并传入用户名,因为当我这样做时我得到错误“like_user()需要3个参数(2给定)”。对不起django很新,任何帮助都会受到大力赞赏!

谢谢

2 个答案:

答案 0 :(得分:0)

尝试request.user.username而不是user.username
它应该工作

答案 1 :(得分:0)

def profile_view(request, username):
    user = get_object_or_404(User, username=username)

如果这是一个视图功能,并且您打算查看其他人的个人资料,那么您必须在urls.py中进行更改:

urlpatterns = [
    url(r'^profile/(?P<username>[\w]+)$', profile_view), 
    # you have to pass the parameter in the url
]

否则很难理解你想做什么