سؤال

لدي حقل M2M في الفصل ، و A من خلال الجدول. أنا لست جدول لحفظ قائمة العناصر من من خلال الجدول. إذا كان لدي نموذج محدد متعدد ، مثل أدناه ، وأريد أن أكون قادرًا على حفظ جميع العناصر المحددة ، كيف يجب أن أفعل ذلك ؟؟

يبدو نموذج النموذج الخاص بي مثل هذا:

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 Save "من خلال"

نصائح أخرى

يجب على Django التعامل مع العديد من modelforms مثل أي نموذج نموذج آخر.

عند استخدام Save () Simple Save () في نموذج ، يتم حفظ جميع البيانات-بما في ذلك العديد من البيانات إلى العديد-دون الحاجة إلى أي مكالمات إضافية.

المرجعي:

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top