要求是“我要在人员组选择中插入人员,并且在创建人员组时,我还可以为该特定组选择人员”。
我在我的 models.py 中添加了两个模型,并管理它们之间的多对多关系。
models.py
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)
serializers.py
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__'
但是,我也想在创建personGroup时添加人员选择。目前,在创建personGroup时,我不允许输入人员。
请让我知道在创建人员组时是否有任何解决方案可以选择可用人员。
答案 0 :(得分:1)
您在person_list
中的PersonGroupSerializer
字段是只读的,因此您无法使用API对其进行修改。
person_list = serializers.PrimaryKeyRelatedField(queryset=Person.objects.all(), many=True)
尝试删除此arg。
您可能还希望切换到ForeignKey字段,而不是拖延时间。