djangom2m中間テーブルにアイテムのリストを保存
質問
クラスにM2Mフィールドとスルーテーブルがあります。私は、スルーテーブルからアイテムのリストを保存するテーブルではありません。以下のようにマルチセレクトフォームがあり、選択したすべてのアイテムを保存できるようにしたい場合は、どうすればよいですか?
私のモデルフォームは次のようになります:
class ClassroomForm(ModelForm):
class Meta:
model = Classroom
fields = ['classname','members','private']
def __init__(self, *args, **kwargs):
creator = kwargs.pop('user')
super(ClassroomForm, self).__init__(*args, **kwargs)
relations = Relations.objects.filter(initiated_by = creator)
self.fields["members"].queryset = \
User.objects.filter(pk__in=[r.follow.pk for r in relations])
そして、このような私の保存方法:
def save_classroom(request):
classroom_instance = Classroom()
if request.method == 'POST':
form = ClassroomForm(request.POST, request.FILES, user = request.user)
if form.is_valid():
new_obj = form.save(commit=False)
new_obj.user = request.user
new_obj.save()
membership = Membership(member = HERE SELECTED ITEMS FROM FORM,classroom=new_obj)
membership.save()
これはどのようにできますか?ありがとう!
解決
あなたがあなたの質問を複製したように見えます。ここに答えを入れました:django m2m form save "sull"テーブル
他のヒント
Djangoは、他のモデル形式と同様に、多くの多いモデルフルムを処理する必要があります。
フォームに単純なsave()を使用すると、多くのデータを含むすべてのデータが追加のメソッド呼び出しを必要とせずに保存されます。
参照:
所属していません StackOverflow