4

デフォルトの管理者で Flatpages を使用して、テンプレート フィールドをテキスト入力から選択または事前定義された選択肢のラジオに変更する必要があります。私自身のアプリの 1 つでこれを行うのは簡単です。モデルでchoices 属性を使用するだけです。

私はいくつかのことを試しました-必要に応じて後でそれらの試みに関する詳細を追加します-しかし、誰かがこれを行う良い方法を知っていますか?

4

1 に答える 1

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)
于 2009-12-02T14:55:39.373 に答える