問題: メニュー項目を開く前にダッシュ記号が「親カテゴリ」列に表示されます。マイmodels.py
Django:親カテゴリは管理インターフェースに表示されません
(親カテゴリの列に注意を払う)picture1とpicture2:とき開いてメニュー項目プロファイルIは、メニュープロファイルの開口部の前と後の
(以下admin.py
を参照)「親カテゴリ」項目を取得( 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)
マイ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)
質問:どのように私はすべてのメニュー項目のプロファイルを開くことなくparent_id
の項目を表示するために、私のadmin.py
を書き換えることができますか?
私は既にModel.get_FOO_display()
を試しましたが、正しい方法では動作しません。どんな助けもありがとう。
グレート。期待どおりに動作します。ありがとう! –