django获取当前用户ID

时间:2010-06-03 16:01:50

标签: django post get request

我有一个迷你应用程序,用户可以登录,查看他们的个人资料,并互相关注。 “跟随”是一种关系,就像虚拟社区中的常规“朋友”关系一样,但它不一定是互惠的,这意味着人们可以跟随用户,而不需要用户跟随跟随他的那个人。 我的问题是: 如果我是登录用户,并导航到配置文件X,按下按钮跟随,我如何获取当前配置文件ID?(当前配置文件意味着我,登录用户,我正在查看的配置文件。 )

观点:

   def follow(request):
      if request.method == 'POST':
    form = FollowForm(request.POST)
    if form.is_valid():
    new_obj = form.save(commit=False)
    new_obj.initiated_by = request.user
    u = User.objects. what here?
    new_obj.follow = u   
    new_obj.save()
    return HttpResponseRedirect('.')    
   else:
       form = FollowForm()     
   return render_to_response('followme/follow.html', {
       'form': form,
       }, 
      context_instance=RequestContext(request))  

提前感谢!

2 个答案:

答案 0 :(得分:15)

试试request.user.id。但是有一个更好的做法。让我看看。

http://docs.djangoproject.com/en/1.2/topics/db/optimization/是一个良好的开端并且充满了良好的实践。 在您的情况下,请使用request.user.id

答案 1 :(得分:0)

如果您将用户的个人资料添加到表单中,则可以将其与帖子一起传递。

有很多方法可以做到这一点。您可以向FollowForm添加隐藏字段(将配置文件作为实例传递)。

您可以通过插入隐藏字段来手动执行此操作,例如:

<input type="hidden" name="profile_id" value="{{ profile.id }}" />

然后您可以将上面的代码更改为:

u = User.objects.get(request.POST['profile_id'])

或者,您可能已在视图中拥有个人资料的用户ID?