正如标题所述,我需要用户检索不同用户的用户信息,无论他们是否经过身份验证。
我有一个“个人资料”模板,其中包含一些逻辑来显示静态用户信息(对于公共)或可编辑的用户信息(对于它所属的用户)。
问题:我的模板中的条件返回“true”——用户对象似乎已通过身份验证,但事实并非如此。如果我从该页面(个人资料)导航,则没有用户登录。
我对 Django 很陌生。我没有在 view.py 中正确检索用户对象吗?
视图.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 %}