工作代码:
{% if request.user.manager.position != 'E' %}
{% endif %}
models.py
Position_choices = (('M', u'Manager'), ('E', u'Staff'), ('U', u'Other_staff'))
class Manager(models.Model):
...
position = models.CharField(max_length=1, choices=Position_choices, default='M')
models.py for proj
class Project(models.Model):
manager = models.ForeignKey(Manager, blank=True, null=True, related_name='manager_set')
Other_staff = models.ForeignKey(Manager, blank=True, null=True, related_name='staff_set')
Staff= models.ForeignKey(Manager, blank=True, null=True, related_name='otherstaff_set')
我在页面html上显示一些块,具体取决于员工的位置。但过去只有一名员工,但现在他们是2.我试着:
{% if request.user.manager.position in ['E', 'U'] %}
结果:
Could not parse the remainder: '['E',' from '['E','
请帮助您正确查询。
答案 0 :(得分:3)
Django模板不支持列表文字,我想说最简单的方法是将列表['E', 'U']
作为变量传递,然后执行:
{% if request.user.manager.position in allowed_positions %}
答案 1 :(得分:1)
相关的上一个问题:Checking if something exists in items of list variable in Django template
有两种方法可以解决问题:
{%if request.user.manager.position in request.positive_list%}
{% if request.user.manager.position == 'E' | request.user.manager.position == 'U' %}
答案 2 :(得分:-1)
尝试将带有valid位置的列表作为变量发送到模板。您不能直接在模板中“定义”列表。