development

ManyToMany 필드에 데이터를 추가하는 방법은 무엇입니까?

big-blog 2020. 11. 24. 08:15
반응형

ManyToMany 필드에 데이터를 추가하는 방법은 무엇입니까?


어디에서도 찾을 수 없으므로 도움이 될 것입니다. :) 여기에 해당 필드가 있습니다.

categories = models.ManyToManyField(fragmentCategory)

FragmentCategory :

class fragmentCategory(models.Model):

        CATEGORY_CHOICES = (
                        ('val1', 'value1'),
                        ('val2', 'value2'),
                        ('val3', 'value3'),
                        )

        name = models.CharField(max_length=20, choices=CATEGORY_CHOICES)

보낼 양식은 다음과 같습니다.

<input type="checkbox" name="val1" />
<input type="checkbox" name="val2" />
<input type="checkbox" name="val3" />

나는 다음과 같이 시도했다.

categories = fragmentCategory.objects.get(id=1),

또는:

categories = [1,2]

이것에 전념 하는 Django 문서의 전체 페이지가 있으며 내용 페이지에서 잘 색인화되어 있습니다.

페이지에 나와 있듯이 다음을 수행해야합니다.

my_obj.categories.add(fragmentCategory.objects.get(id=1))

또는

my_obj.categories.create(name='val1')

경우 다른 사람이 끝에서 여기까지 관리 폼 Many2Many 절약 동작을 사용자 정의하기 위해 애 쓰고, 당신은 호출 할 수 없습니다 self.instance.my_m2m.add(obj)귀하의에 ModelForm.save로, 재정 ModelForm.save나중에에서 M2M 웁니다 self.cleaned_data['my_m2m']변경 사항을 덮어 어느. 대신 전화 :

my_m2ms = list(self.cleaned_data['my_m2ms'])
my_m2ms.extend(my_custom_new_m2ms)
self.cleaned_data['my_m2ms'] = my_m2ms

(수신 QuerySet을 목록으로 변환하는 것은 괜찮 ManyToManyField습니다. 어쨌든 그렇게합니다.)

참고 URL : https://stackoverflow.com/questions/1182380/how-to-add-data-into-manytomany-field

반응형