Django-检索未经身份验证的用户对象
正如标题所述,我需要用户检索不同用户的用户信息,无论他们是否经过身份验证 我有一个“配置文件”模板,带有一些逻辑,可以显示静态用户信息(用于公共)或可编辑用户信息(用于它所属的用户) 问题:我的模板中的条件返回“true”-用户对象似乎已通过身份验证,但未通过身份验证。如果我从该页面(配置文件)导航,则没有用户登录 我对Django相当陌生。我是否没有在my view.py中正确检索用户对象 视图.pyDjango-检索未经身份验证的用户对象,django,Django,正如标题所述,我需要用户检索不同用户的用户信息,无论他们是否经过身份验证 我有一个“配置文件”模板,带有一些逻辑,可以显示静态用户信息(用于公共)或可编辑用户信息(用于它所属的用户) 问题:我的模板中的条件返回“true”-用户对象似乎已通过身份验证,但未通过身份验证。如果我从该页面(配置文件)导航,则没有用户登录 我对Django相当陌生。我是否没有在my view.py中正确检索用户对象 视图.py def GetProfileById(request, userid): try:
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 %}
{%if user.u经过身份验证%}
{%csrf_令牌%}
{{about_form.first_name}
{{about_form.last_name}
{{关于你的生日}
{{about_form.profession}
拯救
{%else%}
名称:{{user.first_Name}{{user.last_Name}}
DOB:{{user_profile.birth}}
职业:{{user_profile.Profession}}
成员自:{user.date_加入}日期:'Y-M-d'}
上次登录:{{user.Last_login}日期:'Y-M-d@H:i'}
{%endif%}
看起来,您试图做的是,如果用户当前已登录,您希望显示一个表单,让他们更新配置文件
所以问题是:
user
设置为数据库中的用户对象request.user
,它表示请求网页的用户的用户对象{% if user.is_authenticated %}
致:
看起来,您试图做的是,如果用户当前登录,您希望显示一个表单,让他们更新配置文件 所以问题是:
user
设置为数据库中的用户对象request.user
,它表示请求网页的用户的用户对象{% if user.is_authenticated %}
致:
我相信你把
user
和request.user
搞混了。前者是显示的用户,后者是当前登录的用户,如果没有人登录,则为匿名用户
如果当前登录的用户和正在显示的用户相同,您希望显示该表单,对吗?那就换衣服吧
{%if user.u经过身份验证%}
到
{%ifequal user request.user%}
我认为您混淆了用户
和请求。用户
。前者是显示的用户,后者是当前登录的用户,如果没有人登录,则为匿名用户
如果当前登录的用户和正在显示的用户相同,您希望显示该表单,对吗?那就换衣服吧
{%if user.u经过身份验证%}
到
{%ifequal user request.user%}
您是否希望.is\u authenticated()
告诉您来自数据库的用户记录当前是否已登录?如果您单击一个链接,然后用户未登录,并不意味着他们以前未登录。我希望该页面具有两种行为。1) 如果请求的配置文件属于当前为特定会话登录的用户,则该页面应具有表单,以便用户可以更新其信息。2) 对于所有其他请求(验证或未验证),以静态形式显示配置文件信息(即不可编辑…无表单)。是否希望。\u authenticated()
告诉您来自数据库的用户记录当前是否已登录?如果单击链接,则用户未登录,这并不意味着他们以前没有登录。我希望页面有两种行为。1) 如果请求的配置文件属于当前为特定会话登录的用户,则该页面应具有表单,以便用户可以更新其信息。2) 对于所有其他请求(无论是否经过身份验证),以静态形式显示配置文件信息(即,不可编辑…无表单)。这正是我要做的。我将在今晚晚些时候进行更改,并向您汇报。谢谢如果是这种情况,那么为什么user.is_authenticated返回true?根据文档,实例化用户的is_authenticated()方法总是返回true。这有多蠢?因此,作为一种解决方法,一旦我在我的视图函数中获得了一个用户对象,我就用我的模板所需的用户数据创建一个字典。您可能需要将请求上下文处理器添加到settings.py文件中。这正是我要做的。我将在今晚晚些时候进行更改,并向您汇报。谢谢如果是这种情况,那么为什么user.is_authenticated返回true?根据文档,实例化用户的is_authenticated()方法总是返回true。这有多蠢?因此,作为一种解决方法,一旦我在我的视图函数中获得了一个用户对象,我就用模板所需的用户数据创建一个字典。您可能需要将请求上下文处理器添加到settings.py文件中。