使用具有默认管理员的Flatpages,我需要将文本输入中的模板字段更改为选择或具有预定义选项的无线电。使用我自己的应用程序很容易做到这一点 - 只需使用模型中的choices属性。
我已经尝试了一些事情 - 如果有必要,我会在稍后添加有关这些尝试的详细信息 - 但有没有人知道这样做的好方法?
答案 0 :(得分: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)