0
Djangoクラスベースの汎用ビューを使用しています。私のmodels.pyには、m2mという多対多のフィールドを持つMyModelというモデルがあります。私はm2mフィールドを編集できる複数のユーザーグループを持っています。各グループのユーザーは、その部分を表示してフィールドに追加するだけで、get_formを使用してm2mフィールドに表示される内容を設定することができます。私が抱えている問題は、あるユーザが自分のレコードを入力すると、m2mフィールドの最初のレコードが削除されるということです。私は何らかの形でm2mフィールドから初期値を取得し、フォームがサブミットされたときにそれらを新しいものに追加する必要があります。ここに私のviews.pyです:Django UpdateView - 多対多フィールドの初期データを取得し、フォームを保存するときに追加します。
class MyModelUpdate(UpdateView):
model = MyModel
fields = ['m2m']
def get_initial(self):
return initials
def get_form(self, form_class=None):
form = super(MyModelUpdate, self).get_form(form_class)
form.fields["m2m"].queryset = DiffModel.objects.filter(user = self.request.user)
return form
def form_valid(self, form):
form.instance.m2m.add(??? add the initial values)
return super(MyModelUpdate, self).form_valid(form)
def get_success_url(self):
...