• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dropdown menu w Django - problem z generowaniem z pętli

VPS Starter Arubacloud
0 głosów
77 wizyt
pytanie zadane 13 grudnia 2019 w Python przez Dawid89 Obywatel (1,120 p.)

Hej. Z poziomu panel admina mam możliwość ustalenia czy dana podstrona jest rodzicem innej. Problem jest tak:

Pętla zaczyna od podstrony1 - nie jest rodzicem więc wyświetla się normalnie, dalej podstrona 2 - to samo, z kolei podstrona 3 jest rodzicem podstrony 1 i tutaj tworzy się dropdown. Problem jest taki, że teraz podstrona1 nie usunie się z pierwszej pozycji menu bo pętla jest zakończona.  Czy można jakoś to rozwiązać w Django? Bo jedyne co przyszło mi do głowy to usunięcie JSem duplikacji podstron w menu. 

 

nav.html

        {% for subpage in subpage_sorted %}
            <li class="nav-item {% if subpage.parent %}dropdown{% endif %}">
              <a class="nav-link {% if subpage.parent %}dropdown-toggle{% endif %}" href="{% url 'generated_page' subpage.slug  %}" {% if subpage.parent %}data-toggle="dropdown"  role="button" aria-haspopup="true" aria-expanded="false"{% endif %}>{% trans subpage.title %}</a>
              {% if subpage.parent %}
              <div class="dropdown-menu">
                <a class="dropdown-item" href="{% url 'generated_page' subpage.parent.slug  %}">{% trans subpage.parent.title %}</a>
              {% endif %}
            </li>

        {% endfor %}

model Subpage

class Subpage(models.Model):

    title = models.CharField('Nazwa podstrony', max_length=254)
    slug = models.SlugField('Przyjazny url', unique=True)
    is_active = models.BooleanField('Jest aktywna', default=True)
    display_order = models.IntegerField('Kolejność wyświetlania w menu', default=1)
    parent = models.ForeignKey('self', verbose_name='Jest rodzicem:', on_delete=models.CASCADE, null=True, blank=True)
 

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 279 wizyt
pytanie zadane 31 stycznia 2017 w Python przez Skaze Nowicjusz (170 p.)
0 głosów
1 odpowiedź 49 wizyt
0 głosów
1 odpowiedź 156 wizyt

92,957 zapytań

141,916 odpowiedzi

321,147 komentarzy

62,286 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...