使用带有默认管理员的 Flatpages,我需要将模板字段从文本输入更改为选择或带有预定义选项的单选。使用我自己的应用程序之一很容易做到这一点 - 只需使用模型中的选择属性。
我已经尝试了一些事情——如有必要,我稍后会添加有关这些尝试的详细信息——但有人知道这样做的好方法吗?
使用带有默认管理员的 Flatpages,我需要将模板字段从文本输入更改为选择或带有预定义选项的单选。使用我自己的应用程序之一很容易做到这一点 - 只需使用模型中的选择属性。
我已经尝试了一些事情——如有必要,我稍后会添加有关这些尝试的详细信息——但有人知道这样做的好方法吗?
定义一个自定义平面页面 ModelAdmin 类,该类继承自默认类,但使用自定义表单。在此表单上,使用所需的小部件覆盖该字段。然后取消注册 flatpages 管理员并使用您的自定义类重新注册它。
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)