Django保存在M2M中间表中的项目列表
题
我在班上有一个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表单保存“通过”表
其他提示
Django应该像其他任何模型表单一样处理多到许多模型。
当您在表单上使用简单的save()时,所有数据(包括多个数据数据)都可以保存,而无需任何其他方法调用。
参考:
不隶属于 StackOverflow