2009-12-02 79 views
4

使用帶有默認管理員的Flatpages,我需要從帶有預定義選項的文本輸入選擇或收音機更改模板字段。使用我自己的應用程序很容易做到這一點 - 只需使用模型中的選項屬性即可。更改Django的字段Flatpages管理

我已經嘗試了一些東西 - 如果有必要,我會在後面添加有關這些嘗試的詳細信息 - 但是有誰知道一個很好的方法來做到這一點?

回答

14

定義一個自定義的頁面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) 
+0

謝謝!這工作,雖然我不得不將模板更改爲template_name。 – aptwebapps 2009-12-02 15:42:26

+2

我不能評論,所以我寫回答丹尼爾羅斯曼在哪裏放?我應該爲此製作新的應用程序嗎? – robos85 2011-02-11 20:38:42

+3

不要忘記'從django.contrib.flatpages.models導入FlatPage' – Tom 2012-05-15 22:16:57