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 %}