2017-06-18 139 views
0

我不断收到在赋值之前引用的“local variable'用户'错误”。我试图复制的代码的用户=行此功能:在赋值错误之前引用的局部变量'user'

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

withing这个功能,你可以看到上的底线:

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) 
然而由于没有通过IM

用户名进入函数,所以我试图使用user.username,但我得到的错误“本地变量'用户'之前引用分配”。这是最好的方法是什么?我完全错了吗?我应该尝试并通过用户名,因为当我做我得到错误“like_user()需要正好3个参数(2给出)”。对于django来说很抱歉,任何帮助都会被大量赞赏!

感谢

+0

但是这根本没有任何意义。您还没有用户,那么您如何使用其用户名来执行获取操作? –

+0

更不用说,'pending_like'和'request.user'都是User的实例,所以不清楚为什么你需要做另一个查询来获得另一个User实例。 –

+0

嗨,对不起,让我创建一个新的帖子,并生病把其余的代码。 – caldf

回答

0

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

+0

嗨,问题是,该用户是为了引用其他用户,但request.user,我希望是有道理的 – caldf

+0

即使它确实有效,这将完全没有意义,因为它只会得到和request.user一样的实例。 –

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

如果这是一个浏览功能,并且你的目的是要看到别人的个人资料,那么你必须做出的URL变化。 py:

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

否则很难理解你想要的东西t做

相关问题