Django AdminのManyToManyFieldをチェックボックスとして表示する簡単な方法はありますか?助言がありますか?Django AdminのチェックボックスとしてManyToManyFieldを表示
答えて
this answerから、CheckBoxSelectMultipleを使用するのManyToManyFieldを上書きするModelAdmin.formfield_overridesを使用することが可能であるように思える:
from django.db import models
from django.contrib import admin
from django.forms import CheckboxSelectMultiple
class MyModelAdmin(admin.ModelAdmin):
formfield_overrides = {
models.ManyToManyField: {'widget': CheckboxSelectMultiple},
}
私はそれを試していないが、単にソースから引用していますが、それはもっともらしく思えます。がんばろう。
警告:
あなたは関係フィールドでカスタムウィジェット を使用したい場合(すなわち
ForeignKey
またはのManyToManyField:@errxは当然、documentationハイライト以下の注意点を指摘したように)、 には、そのフィールドの名前がraw_id_fields
またはradio_fields
に含まれていないことを確認してください。
formfield_overrides
あなたはraw_id_fields
またはradio_fields
セットを持っている関係フィールド 上のウィジェットを変更 せません。それはraw_id_fields
とradio_fields
は 独自のカスタムウィジェットを意味するからです。
djangoのドキュメントからの警告があります。 カスタムフィールドを関連フィールド(ForeignKeyまたはManyToManyField)とともに使用する場合は、そのフィールドの名前がraw_id_fieldsまたはradio_fieldsに含まれていないことを確認してください。 formfield_overridesでは、raw_id_fieldsまたはradio_fieldsが設定されている関連フィールドのウィジェットは変更できません。これは、raw_id_fieldsとradio_fieldsが独自のカスタムウィジェットを意味するためです。 – errx
ヘッドアップありがとう。答えに警告を出します。 –
私はこれを行う簡単な方法はないと思います。 ModelAdminクラスをオーバーライドしようとすることはできますが、これは「単純な」方法ではありません。
しかし、あなたは、ほぼ同様の機能これは最も確かに可能である
に追加するfilter_horizontalまたはfilter_vertical使用することができます。
def formfield_for_manytomany(self, db_field, request=None, **kwargs):
if db_field.name == 'your field name':
kwargs['widget'] = form_widgets.CheckboxSelectMultiple()
kwargs['help_text'] = ''
return db_field.formfield(**kwargs)
これは、管理者コードに探してから派生した:ここでは、ModelAdmin
サブクラスに置くことができるコードです。以下の単一のフィールド用に上書きするために
に便利です:私は訪問者を混同しないように、受け入れ答えを変更することをお勧め
def get_form(self, request, obj=None, **kwargs):
form = super(VNodeAdmin, self).get_form(request, obj, **kwargs)
form.base_fields['node_type'].widget = forms.CheckboxSelectMultiple()
return form
- 1. Django ManytoManyFieldとwidgets
- 2. Django admin raw_id_fieldsテーブル表示
- 3. djangoはmanytomanyfieldの内容を表示します
- 4. のManyToManyFieldまだadminインタフェース
- 5. Django:テンプレートにManyToManyFieldを表示しますか?
- 6. Django AdminのManyToManyFieldの両方向にアクセスするには?
- 7. Django admin - ForeignKeyの表示テキストを変更
- 8. Djangoのサムネイルを表示するadmin inline
- 9. djangoユーザーとグループ - adminのグループメンバーシップを表示しますか?
- 10. ManyToManyFieldのdjango getattr
- 11. django admin関連フィールドの表示フィールド
- 12. Django admin - forgeignキーのテキストを表示名として返します
- 13. クリスピーフォームはチェックボックスとしてmanytomanyfieldをレンダリングします
- 14. Django、ManyToManyFieldをオーバーライドします。
- 15. Django ManyToManyField multiset
- 16. Django ManyToManyFieldオプション
- 17. about django ManyToManyField
- 18. django-filtering manytomanyfield value_list
- 19. django ManyToManyFieldのQuerysetフィルタ?
- 20. Djangoの詳細オブジェクトへのリンクとしての外部キー列の表示admin
- 21. Django admin "サイトに保存して表示"ボタン
- 22. Django - ManyToManyFieldはフォームに表示されません
- 23. Django ManyToManyFieldは選択した項目を強調表示しません
- 24. Django Adminの認証セクションを非表示にします
- 25. Django admin - データベースの選択肢とインラインで表示
- 26. チェックを外してもDjangoチェックボックスが表示されない
- 27. Django adminアクション - チェックボックスの削除を選択しますか?
- 28. DjangoのGenericForeignKeyとAdmin
- 29. ラジオボタンとしてDjangoのフォームで表示ブールモデルフィールドではなく、デフォルトのチェックボックス
- 30. ManyToManyFieldのverbose_nameが表示されない
。 – surfer190