在Django Flatpages Admin中更改字段

apt*_*pps 4 django django-admin django-flatpages

使用具有默认管理员的Flatpages,我需要将文本输入中的模板字段更改为选择或具有预定义选项的无线电.使用我自己的应用程序很容易做到这一点 - 只需使用模型中的choices属性即可.

我尝试了一些事情 - 如果有必要,我会在稍后添加有关这些尝试的详细信息 - 但有没有人知道这样做的好方法?

Dan*_*man 14

定义一个自定义flatpages ModelAdmin类,该类继承自默认类,但使用自定义表单.在此表单上,使用所需的小部件覆盖该字段.然后取消注册flatpages admin并使用您的自定义类重新注册它.

from django.contrib.flatpages.admin import FlatPageAdmin, FlatpageForm

class MyFlatpageForm(FlatpageForm):
    template = forms.ChoiceField(choices=MY_CHOICES)

class MyFlatPageAdmin(FlatPageAdmin):
    form = MyFlatpageForm

admin.site.unregister(FlatPage)
admin.site.register(FlatPage, MyFlatPageAdmin)
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记`来自django.contrib.flatpages.models导入FlatPage` (3认同)
  • 我不能评论所以我写信回答丹尼尔罗斯曼在哪里放?我应该为此制作新应用吗? (2认同)
  • 这已在其他地方提出,但我一直在问自己在哪里添加此代码.您可以在没有应用程序的情况下使用平面页面,那么如果您只想更改管理表单中所有平面页面的行为,那么您在何处进行覆盖? (2认同)