Problem: Dash-Zeichen in der Spalte "Übergeordnete Kategorie" angezeigt, bevor ich einen Menüeintrag öffnen. Ich erhalte ‚Übergeordnete Kategorie‘ Elemente, wenn sie geöffnet Menüpunkt Profil (siehe admin.py
unten)Django: Übergeordnete Kategorien werden in der Benutzeroberfläche nicht angezeigt
Vor und nach dem Öffnen der Menü-Profil: picture1 und picture2 (achten Sie auf den Spaltenübergeordnete Kategorie)
Mein models.py
: (Aufmerksamkeit auf parent_id
)
class Menu(models.Model):
cat_title = models.CharField(max_length=150, verbose_name='Category title')
menu_title = models.CharField(max_length=150, verbose_name='Menu title')
parent_id = models.IntegerField(blank=True, null=True, verbose_name='Parent category', choices=(('',''),))
url = models.CharField(max_length=255, verbose_name='URL', blank=True)
named_url = models.CharField(max_length=255, verbose_name='Named URL', blank=True)
level = models.IntegerField(default=0, editable=False)
Mein admin.py
:()
class MyMenu(admin.ModelAdmin):
def get_choices(self):
choices = (('',''),)
categories = models.Menu.objects.all().values()
for i in categories:
choices += ((i['id'], i['cat_title']),)
return choices
def formfield_for_choice_field(self, db_field, request):
if db_field.name == 'parent_id':
db_field.choices = self.get_choices()
return super().formfield_for_choice_field(db_field, request)
list_display = ('cat_title', 'menu_title', 'parent_id', 'level')
list_display_links = ('cat_title', 'menu_title')
admin.site.register(models.Menu, MyMenu)
Frage: Wie konnte ich meine admin.py
umschreiben parent_id
Elemente anzuzeigen, ohne einen Menüpunkt Profil zu öffnen?
Ich habe bereits versucht Model.get_FOO_display()
, aber es funktioniert nicht in der richtigen Weise. Jede Hilfe wäre willkommen.
Großen. Funktioniert wie ich es erwartet habe. Vielen Dank! –