2010-06-24 2 views
0

클래스에 m2m 필드가 있고 쓰루 테이블이 있습니다. 나는 테이블을 통과 테이블에서 항목의 목록을 저장할 테이블이 아닙니다. 아래처럼 멀티 선택 폼이 있는데 선택한 항목을 모두 저장할 수있게하려면 어떻게해야합니까 ??Django는 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() 

을 수행 할 수 있습니까? 감사합니다.

+1

가능한 중복 (http://stackoverflow.com/questions/3074938/django-m2m-form-save-through-table) – Lekensteyn

답변

1

당신은 질문 복제 한 것 같은데. Django m2m form save " through " table

[테이블 "을 통해"장고 M2M 형태로 저장]의
+0

나는 그것을보고 받아 들였다! 그게 내가 찾고 있던거야. Thnks! – dana

0

장고는 다른 모델 양식처럼 다 대다 ModelForms를 처리해야합니다.

폼에서 간단한 save()를 사용하면 추가 데이터를 호출 할 필요없이 모든 데이터 (다 대다 데이터 포함)가 저장됩니다.

참조 :

+0

에게 난을 : 여기에 대답 넣어 중간 'through'테이블에 데이터를 저장해야합니다. 그게 내가 그것을 초기화하려고하는 이유입니다. 그렇지 않으면 다음과 같은 오류가 발생합니다. 중간 모델을 지정하는 ManyToManyField에 값을 설정할 수 없습니다. 대신 회원 관리자를 사용하십시오. – dana

관련 문제