我希望应用程序能够检查当前登录的用户是否是";test2";。我正在使用Django并运行以下代码:
<script>
console.log('{{ request.user }}')
{% if request.user == "test2" %}
console.log('The user that is currently logged in is test2.')
{% else %}
console.log('There was an error.')
{% endif %}
</script>
我的控制台正在记录以下内容:
test2
There was an error.
为什么会这样?我如何让应用程序识别";test2";是否已登录?
request.user.username
<script>
console.log('{{ request.user.username }}')
{% if request.user.username == "test2" %}
console.log('The user that is currently logged in is test2.')
{% else %}
console.log('There was an error.')
{% endif %}
</scrip
这可能是因为request.user
实际上是对象,但__str__
赋予了User
的username
属性。因此:
{% if request.user.username == "test2" %}
console.log('The user that is currently logged in is test2.')
{% else %}
console.log('There was an error.')
{% endif %}
*注意:-我假设test2
是用户名,并且它是unique。
由于逻辑在模板中,因此在服务器端进行评估。这意味着request.user
不是字符串,而是user
实例。
console.log('{{ request.user }}')
打印用户名的原因是在打印时,会调用__str__
,返回username
。
因此,您需要使用正确的字段进行检查,即user.username
。
<script>
console.log('{{ request.user }}')
{% if request.user.username == "test2" %}
console.log('The user that is currently logged in is test2.')
{% else %}
console.log('There was an error.')
{% endif %}
</script>