2011-07-05 11 views
10

私は、Djangoの管理者に、いくつかのフィールドの入力にカスタムフォームフィールドを使用させたいと思っています。Django管理者のモデルフィールドにカスタムフォームフィールドを使用するにはどうすればいいですか?

これまでは、フォームフィールドがバインドされたカスタムモデルフィールドを作成しましたが、これは効果的ですが、メリットを追加しない不要なモデルフィールドを導入しています。

私はそれがカスタム管理フォーム(http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-adminを参照)を使って何とかできていると思いますが、どうやってそれを行うのか分かりませんでした。

+0

リンクされた例についてどう思われますか?完全にはっきりしているようです。カスタムフィールドでフォームを定義し、それをadminクラスのフォームとして設定します。どうしたの? –

答えて

8
class MyModelForm(forms.ModelForm): 
    my_field = MyCustomFormField() 

    class Meta: 
     model = MyModel 

class MyModelAdmin(admin.ModelAdmin): 
    form = MyModelForm 
+0

ありがとう!それは魅力のように働いた。フォームフィールドを上書きすることができるかどうかはわかりませんでした。 – Semmel

+0

実際、このメソッドは**正常に動作しません** - 通常の 'Form'sのみです。 'ModelForm'のフィールドを上書きする場合は、これをMetaクラスで行う必要があります。 https://docs.djangoproject.com/en/1.5/topics/forms/modelforms/#overriding-the-default-fields – jnns

+0

@jnns:奇妙なことに、ModelFormの部分はあなたがリンクしているDjangoのdocページからほぼそのまま取ってあります。 – che

関連する問題