Python Django HTML用户身份验证

Python Django HTML用户身份验证,python,html,django,authentication,Python,Html,Django,Authentication,我有这样一种情况: {% if object.author == user or object.res_person_1_username == user %} 如果我查看变量,例如: <p class="article-content mb-1"><strong>object.res_person_1_username: </strong>{{ object.res_person_1_username }}</p> 这总是

我有这样一种情况:

{% if object.author == user or object.res_person_1_username == user %}
如果我查看变量,例如:

<p class="article-content mb-1"><strong>object.res_person_1_username: </strong>{{ object.res_person_1_username }}</p>
这总是错误的。为什么呢?我错过了什么?我需要更改数据类型还是什么

models.py

res_person_1_username = models.TextField(blank=True, max_length=40)

您正在将用户名与
用户
对象进行比较。字符串
'foo'
与用户名为
'foo'
用户不同

您可以通过以下方式进行检查:

{% if object.author == user or object.res_person_1_username == user.username %}
{%if object.author==user或object.res\u person\u 1\u username==user.username%}

但也就是说,对于模型对象,通常使用。这保证了引用的完整性,使筛选、查询等更加方便,还将自动为该列创建索引。

您正在将用户名与
用户
对象进行比较。它们都是字符串吗?或者我们一个是用户类,另一个是文本字段?@ChrisDoyle:
用户
通常作为
请求自动传递到模板。用户
(这就是
请求
呈现中传递的原因(…)
call,这是
User
对象和字符串之间的比较。为了简化操作,只需将ur model.py中的
res\u person\u 1\u username
更改为Foreignkey,并将其链接到auth User model。它工作正常,感谢您的帮助
{% if object.author == user or object.res_person_1_username == user.username %}