Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Rest框架:处理多对多关系_Python_Django Models_Django Rest Framework - Fatal编程技术网

Python Django Rest框架:处理多对多关系

Python Django Rest框架:处理多对多关系,python,django-models,django-rest-framework,Python,Django Models,Django Rest Framework,要求是我想在人员组选择中插入人员,并且在创建人员组时,我可以为该特定组选择人员 我在models.py中添加了两个模型,并管理了它们之间的多对多关系 models.py 序列化程序.py 上面的代码帮助我创建personGroup选择的person 但是,我还想在创建personGroup时添加人员选择。目前在创建personGroup时,我不允许输入persons。 请告诉我是否有任何解决方案,我可以在创建人员组时通过该解决方案选择可用人员。PersonGroupSerializer中的人

要求是我想在人员组选择中插入人员,并且在创建人员组时,我可以为该特定组选择人员

我在models.py中添加了两个模型,并管理了它们之间的多对多关系

models.py

序列化程序.py

上面的代码帮助我创建personGroup选择的person

但是,我还想在创建personGroup时添加人员选择。目前在创建personGroup时,我不允许输入persons。

请告诉我是否有任何解决方案,我可以在创建人员组时通过该解决方案选择可用人员。

PersonGroupSerializer中的人员列表字段为只读,因此您不能使用API修改它

person\u list=serializers.PrimaryKeyRelatedFieldqueryset=person.objects.all,many=True

尝试删除此参数


您可能还希望切换到ForeignKey字段,而不是sluged。

remove read only参数有效。还要管理同一字段中的关系。谢谢
from django.db import models

class PersonGroup(models.Model):
    id = models.AutoField(primary_key=True)
    groupName = models.CharField(max_length=30)    
    detail = models.CharField(max_length=200)

class Person(models.Model):
    id = models.AutoField(primary_key=True)
    personId = models.CharField(max_length=20)
    personName = models.CharField(max_length=20)    
    state = models.IntegerField()
    personGroup = models.ManyToManyField(PersonGroup, related_name="person_list", blank=True) 
class PersonSerializer(serializers.ModelSerializer):
    personGroup = serializers.PrimaryKeyRelatedField(queryset=PersonGroup.objects.all(), many=True)
    class Meta:
        model = Person
        fields = '__all__'

class PersonGroupSerializer(serializers.ModelSerializer):
    person_list = PersonSerializer(many=True, read_only=True)
    class Meta:
        model = PersonGroup
        fields = '__all__'