私はCheckBoxSelectMultipleウィジェットで更新したいManyToMany関係のモデルを持っていますが、他のすべてはデフォルトの汎用フォームを使用しますが、その1つのフォームフィールドを再定義するとUpdateViewに唯一表示されます。フォーム全体を再定義することなく、1つのフィールドだけでウィジェットを使用する方法はありますか?フォーム全体を再定義することなく、汎用のUpdateViewでカスタムウィジェットを使用するにはどうすればよいですか?
Views.py:
from django.views.generic.edit import UpdateView
from kunden.models import Kunde, Unternehmenstyp
from kunden.forms import KundeEditForm
class KundeUpdate(UpdateView):
model = Kunde
form_class = KundeEditForm
template_name = 'kunden/kunde_update.html'
success_url = '/'
forms.py:
from django.forms.widgets import CheckboxSelectMultiple
from django.forms import ModelMultipleChoiceField,ModelForm
from kunden.models import Kunde, Unternehmenstyp
class KundeEditForm(ModelForm):
model = Kunde
unternehmenstyp = ModelMultipleChoiceField(widget=CheckboxSelectMultiple,required=True, queryset=Unternehmenstyp.objects.all())
私は、これは痛いほど簡単な解決策を持って知っているので、事前に皆であなたの忍耐に感謝。
私はそれに誰でも読むことができる任意の長編小説をお勧めできますか?私は基本的なチュートリアルに進み、必要に応じてドキュメントを掘り、Djangoの2つのスクープを読んでください:https://django.2scoops.org/私のレベルの誰かのための本を考えることができれば、それは大歓迎です。おかげで再び
確かに速かったこと。本当にありがとう。私はこれを答えとして受け入れようとしましたが、10分待たなければならないと言いました:) もし時間があれば、ここで何が起こっているのかに関するいくつかの文書を指摘できますか? – skzryzg
KundeEditFormのメタ情報は、任意のフォームフィールドにカスタムウィジェットを設定することができます。 – aRkadeFR
2番目の部分では、位置引数 "widgets"をmodelform_factoryに渡して同じことを行います。 – aRkadeFR