如果我通过 form.save() (django) 保存它们,如何连接多对多关系?

How to connect many to many relationaship if I save them via form.save() (django)?

这个link https://docs.djangoproject.com/en/3.2/topics/db/examples/many_to_many/说明我需要创建一个class的对象来保存连接。因为我的 classes 中有很多字段,所以我使用 form.save() 来保存它们,但这并没有填充 class 中的 ManyToMany 连接。如何填写该字段?

def create(response):
    if response.method == "POST":
        if "next" in response.POST:
            form = CreateNewPerson(response.POST)
            form.save()
            form2 = CreateNewDog() # form doesn't have filed many_to_many to Person, but class Dog does


class CreateNewDog(forms.ModelForm):
    class Meta:
        model = Dog
        fields = ['name','years_old', 'sex', 'blood_type', 'image']


class Dog(models.Model):
    owner =  models.ForeignKey(Person, on_delete=models.SET_NULL, null=True)
    user = models.ManyToManyField(User)

您可以像这样保存表单、获取实例并管理关系:

def create(request):
    if request.method == "POST":
        if "next" in request.POST:
            form = CreateNewPerson(request.POST)
            person = form.save() # get the person

            form2 = CreateNewDog(request.POST)
            dog = form2.save() # get the dog
            dog.user.add(person) # assign the person to the dog

请注意,response 已更改为 request