Django 检查登录的用户是否是创建记录的用户
Django check if the user that is logged in is the user that created a record
我有一个 Django 模型来记录创建记录的用户。我只想在登录用户与记录用户相同时在模板上显示按钮。
我想做类似的事情:
{% if user.is_authenticated and (request.user.is_superuser or request.user == task.user) %}
其中任务是记录。
我该怎么做?
您不能在 {% if %}
模板标签中使用括号。您可以使用以下等效的检查:
{% if user.is_authenticated and request.user.is_superuser or user.is_authenticated and request.user == task.user %}
然后您可以删除第一个 user.is_authenticated
检查,因为只有经过身份验证的用户才能成为超级用户。
{% if user.is_authenticated and request.user.is_superuser or user.is_authenticated and request.user == task.user %}
您也可以删除第二个 user.is_authenticated
检查是否所有任务都有用户(因为匿名用户永远不等于真实用户)。
{% if request.user.is_superuser or request.user == task.user %}
Django 不鼓励在模板中放置复杂的逻辑。在这种情况下,您可以将逻辑放入过滤器中,然后您的模板将简化为:
{% if task|display_button:request.user %}...{% endif %}
我有一个 Django 模型来记录创建记录的用户。我只想在登录用户与记录用户相同时在模板上显示按钮。
我想做类似的事情:
{% if user.is_authenticated and (request.user.is_superuser or request.user == task.user) %}
其中任务是记录。
我该怎么做?
您不能在 {% if %}
模板标签中使用括号。您可以使用以下等效的检查:
{% if user.is_authenticated and request.user.is_superuser or user.is_authenticated and request.user == task.user %}
然后您可以删除第一个 user.is_authenticated
检查,因为只有经过身份验证的用户才能成为超级用户。
{% if user.is_authenticated and request.user.is_superuser or user.is_authenticated and request.user == task.user %}
您也可以删除第二个 user.is_authenticated
检查是否所有任务都有用户(因为匿名用户永远不等于真实用户)。
{% if request.user.is_superuser or request.user == task.user %}
Django 不鼓励在模板中放置复杂的逻辑。在这种情况下,您可以将逻辑放入过滤器中,然后您的模板将简化为:
{% if task|display_button:request.user %}...{% endif %}