Hello Awesome People!
我为我的网站构建了一个信息中心,在左侧部分,我有一个包含多个项目的菜单:{{ method.returnTypeName }}
,Home
,Messenger
.... <登记/>
创建帐户时,用户可以选择他们的项目,重新订购或删除。
我有Job Offers
&amp; Menu
个型号,
Item
对于用户的菜单,在我的class Menu(models.Model):
items = models.ManyToManyField('Item',blank=True)
class Item(models.Model):
name = models.CharField(max_length=100)
unique_key = models.CharField(max_length=100,unique=True)
url = ......
中,我使用for循环显示当前用户的项目。对于CSS类,我想突出显示当前视图,即当前项目
当用户访问他的信使时,我想用CSS类突出显示该项信使。
base_template
现在,当我在 <ul>
{% for item in user.menu.items.all %}
<li class='{% block item.unique_key %}{% endblock %}'>
<a href="{{item.url}}"> {{item.name}}</a>
</li>
{% endfor %}
</ul>
时,知道我有一个名为messenger.html
的信使unique_key
,我做
item_messenger
它没有用,项目{% block 'item_messenger' %}active{% endfor%}
或我选择的任何内容都没有突出显示,我想知道为什么?
还有另一种方法可以实现吗?
任何提示都会有所帮助,提前谢谢!
答案 0 :(得分:0)
您正在尝试让块标记解释变量作为其名称。这不起作用。
您需要在模板上下文中传递活动项的键,然后在base_template
中,您只需执行简单的if语句即可将active
类添加到正确的条目。
<ul>
{% for item in user.menu.items.all %}
<li class='{% if item.unique_key == active_key %}active{% endif %}'>
<a href="{{item.url}}"> {{item.name}}</a>
</li>
{% endfor %}
</ul>