正如标题所述,我需要用户检索不同用户的用户信息,而不管它们是否经过身份验证。Django - 检索未经身份验证的用户对象
我有一个'配置文件'模板与一些逻辑来显示静态用户信息(公开)或可编辑的用户信息(对于它所属的用户)。
问题:我的模板中的条件返回“true” - User对象似乎被认证,但它不是。如果我从该页面(配置文件)导航,没有用户登录。
我对Django相当陌生。我是不是在我的view.py中正确检索User对象?
views.py
def GetProfileById(request, userid):
try:
user = User.objects.get(pk=userid)
except User.DoesNotExist:
return HttpResponseRedirect('/')
try:
user_profile = user.get_profile()
except Exception:
return HttpResponseRedirect('/')
context = {'user': user, 'user_profile': user_profile}
return render_to_response('profile.html', context, context_instance=RequestContext(request))
profile.html
{% if user.is_authenticated %}
<form id="form-about" class="form-horizontal" action="{% url update-user-profile %}" method="POST">
{% csrf_token %}
<p>{{ about_form.first_name }}</p>
<p>{{ about_form.last_name }}</p>
<p>{{ about_form.birthday }}</p>
<p>{{ about_form.profession }}</p>
<button class="btn btn-primary" type="submit">Save</button>
</form>
{% else %}
<p><b>Name:</b> {{ user.first_name }} {{ user.last_name }}</p>
<p><b>DOB:</b> {{ user_profile.birthday }}</p>
<p><b>Profession:</b> {{ user_profile.profession }}</p>
<p><b>Member since:</b> {{ user.date_joined|date:'Y-M-d' }}</p>
<p><b>Last login:</b> {{ user.last_login|date:'Y-M-d @ H:i' }}</p>
{% endif %}
你期待'.is_authenticated()'来告诉你,如果用户记录,来自数据库,目前登录? – 2013-02-28 04:14:59
如果您点击一个链接,然后用户没有登录,并不表示他们以前没有登录过。 – 2013-02-28 04:23:14
我想让页面有两种行为。 1)如果所请求的配置文件属于当前登录进行特定会话的用户,则该页面应具有表单,以便用户可以更新他/她的信息。 2)对于所有其他请求(已验证或未验证),以静态形式显示配置文件信息(即不可编辑....无形式)。 – 2013-02-28 14:03:11