我有一个迷你应用程序,用户可以登录,查看他们的个人资料,并互相关注。 “跟随”是一种关系,就像虚拟社区中的常规“朋友”关系一样,但它不一定是互惠的,这意味着人们可以跟随用户,而不需要用户跟随跟随他的那个人。 我的问题是: 如果我是登录用户,并导航到配置文件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))
提前感谢!
答案 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?