我在submit_line.html中添加了一个提交按钮。我想只为员工用户而不是超级用户展示它。 我有以下模板存根:
{% if request.user.is_superuser %}
submit-button
{% else %}
no submit-button
{% endif %}
但我访问该页面的任何用户都会获得提交按钮代码
我还验证了“settings.py”中启用了上下文处理器,我们可以阅读:https://docs.djangoproject.com/en/dev/topics/auth/default/#authentication-data-in-templates。
似乎django变量用户超出了此范围。 我该如何解决?
提前致谢。
答案 0 :(得分:0)
现在它有效!!
在管理模板中,submit_line.html通过admin_modify.py文件中包含标记submit_row中的takes_context=True
传递上下文信息。要获得用户信息也需要传递请求:
admin_modify.py
from django.contrib import admin
@register.inclusion_tag('admin/submit_line.html', takes_context=True)
def submit_row(context, request):
"""
Displays the row of buttons for delete and save. I added the user variable to the context
and I pass it in ctx.
"""
opts = context['opts']
change = context['change']
is_popup = context['is_popup']
save_as = context['save_as']
user = request.user
ctx = {
'user_type': user,
'opts': opts,
'show_delete_link': (
..........
当调用submit_row包含标记时,我在change_form.html中添加了request参数:
change_form.html
{% submit_row request %}
最后,在submit_line.html中我可以使用:
submit_line.html
{% if user_type.is_superuser %}