Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

[BUG] Incorrect methodology for `is_menu_item_dropdown` simple tag

Offen
#184 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Veraltet
Tech-Stack
django, python
Bereich
backend

Rechercherichtung

Durchsuche das Repository nach dem Simple-Tag is_menu_item_dropdown und untersuche, wie sein page-Wert verwendet wird. Stelle den Fall nach, in dem page fehlt oder standardmäßig falsch gesetzt wird, und verifiziere anschließend, dass das Tag vermeidet, Methoden von page für einen Nicht-Seiten-Wert aufzurufen, während das Verhalten von Sub-Links und Child-Links erhalten bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Area: Core ⚙ Type: Tech Debt

Describe the bug
A clear and concise description of what the bug is.

This code block:

@register.simple_tag
def is_menu_item_dropdown(value):
    return \
        len(value.get('sub_links', [])) > 0 or \
        (
            value.get('show_child_links', False) and \
            len(value.get('page', []).get_children().live()) > 0
        )

What if you actually hit the case where value.get('page', []) defaults to a list? Then .get_children().live() is being called on an object which doesn't have these methods. Also, probably shouldn't inline all of this for readability despite the faster evaluation.

One simple fix:

@register.simple_tag
def is_menu_item_dropdown(value):
     has_sub_links = len(value.get('sub_links', [])) > 0
     show_child_links = value.get('show_child_links', False)
     page_has_children = False
     if has_sub_links or show_child_links: # No need to evaluate the below if this case fails...
         page = value.get('page')
         if page is not None:
             page_has_children= len(page.get_children().live()) > 0
     return has_sub_links or (show_child_links and page_has_children)

This is also assuming you still want to be verbose with the evaluation into booleans here.

Vorherrschende Sprache
Python
Sterne
765
Forks
154
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Die Einrichtungsdateien dieses Projekts haben wir noch nicht geprüft. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus coderedcorp/coderedcms

Alle Issues in coderedcorp/coderedcms

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.