สวัสดีทุกคน!
ฉันกำลังสร้างแดชบอร์ดสำหรับเว็บไซต์ของฉัน ในส่วนด้านซ้าย ฉันมีเมนูที่มีหลายรายการ : Home
, Messenger
, Job Offers
....
เมื่อสร้างบัญชี ผู้ใช้จะสามารถเลือกรายการของตนได้อีกครั้ง สั่งหรือถอด.
ฉันมีรุ่น 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 = ......
สำหรับเมนูของผู้ใช้ ใน base_template
ของฉัน ฉันจะแสดงรายการของผู้ใช้ปัจจุบันด้วย for loop ด้วยคลาส CSS ฉันต้องการที่จะเน้นมุมมองปัจจุบัน รายการปัจจุบัน
เมื่อผู้ใช้เยี่ยมชม Messenger ของเขา ฉันต้องการเน้นรายการ Messenger นั้นด้วยคลาส CSS
<ul>
{% for item in user.menu.items.all %}
<li class='{% block item.unique_key %}{% endblock %}'>
<a href="/th{{item.url}}"> {{item.name}}</a>
</li>
{% endfor %}
</ul>
ตอนนี้ เมื่ออยู่ใน messenger.html
เช่น เมื่อรู้ว่าฉันมี unique_key
สำหรับ Messenger ชื่อ item_messenger
ฉันก็ทำ
{% block 'item_messenger' %}active{% endfor%}
มันใช้งานไม่ได้ รายการ Messenger
หรืออะไรก็ตามที่ฉันเลือกไม่ถูกไฮไลต์ ฉันสงสัยว่าทำไม มีวิธีอื่นในการบรรลุเป้าหมายนั้นหรือไม่
คำแนะนำใด ๆ จะเป็นประโยชน์ ขอบคุณล่วงหน้า!
<li class="{% if active_key == item.unique_key %}active{% endblock %}">
- person Daniel Roseman   schedule 01.06.2018<li class = '{% block item_name %} {% endblock %}'>
จากนั้นที่ด้านบนของทุกหน้า ฉันจะเพิ่ม{% block item_name %} active {% endblock %}
ฉันมีหน้าเว็บทั้งหมดที่มีแท็กblock
อยู่ด้านบนแล้ว ซึ่งเป็นเหตุผลว่าทำไมฉันจึงต้องทำblock
วนซ้ำ วิธีที่คุณแสดงให้ฉันเห็น ฉันเคยคิดไว้แล้ว แต่มันจะต้องมีactive_key
เป็นตัวแปรบริบทในแต่ละมุมมอง ฉันมีมุมมองมากมาย - person   schedule 01.06.2018