代码之家  ›  专栏  ›  技术社区  ›  aptwebapps

更改Django Flatpages管理中的字段

  •  4
  • aptwebapps  · 技术社区  · 15 年前

    使用默认管理员的flatpages,我需要将模板字段从文本输入更改为选择或使用预定义选项进行广播。使用我自己的应用程序很容易做到这一点-只需使用模型中的选项属性。

    我已经尝试了一些事情——如果需要的话,我稍后会添加这些尝试的详细信息——但是有人知道一个很好的方法来做到这一点吗?

    1 回复  |  直到 15 年前
        1
  •  14
  •   Dominic Rodger    15 年前

    定义自定义Flatpages ModelAdmin类,该类继承自默认的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)
    
    推荐文章