django 显示错误,例如"第 3 行的块标签无效:"否则"。您是否忘记注册或加载此标签?



下面的代码来自views.py,它获取配置文件,这是django中user模块的扩展,并且它将该配置文件作为字典传递给HTML。

views.py

def render_add_req(request):
profile = Profile.objects.get(user=request.user)
return render(request, 'add_item_request.html', {'profile': profile})

这是要呈现的html代码,在此我使用配置文件对象的is_admin属性来确定给定用户是管理员还是员工,之后我确定要根据用户扩展哪些基础模板。

add_item_request.html

{% if profile.is_admin == 'a' %}
{% extends 'admin_base.html' %}
{% else %}
{% extends 'staff_base.html' %}
{% endif %}

{% block title %}
Item Req : Add
{% endblock %}
{% block content %}
Item Req : Add
{% endblock %}

包括:Abdul Aziz Barkat的回答

不能在if-else语句中放置extends。

检查,Python/django - if语句在模板中围绕extends

Django {% with %}标签在{% if %} {% else %}标签内?

Q如何在单个html页面中根据不同的用户类型扩展不同的基础模板?

1一个简单的方法是在上下文中传递模板名,因为extends可以使用变量名,所以传递像{'template_name': 'admin_base.html',…}和在模板{% extends template_name %}

2从视图中检查用户的类别,并为管理员和普通用户呈现单独的模板

相关内容

  • 没有找到相关文章

最新更新