gpt4 book ai didi

python - DRF3 在 m2m 关系上创建嵌套序列化器

转载 作者:行者123 更新时间:2023-11-30 22:28:38 25 4
gpt4 key购买 nike

我有一个用户模型和一个音乐会模型。 Concert 模型有一个到用户模型的 m2m 字段。在 Concert View 中,我想要一个与 Concert 模型相关的用户词典列表。这就是我得到的:

models.py

class User(AbstractBaseUser, PermissionsMixin):
objects = UserManager()
name = models.CharField(max_length = 255, default = "")
date_added = models.DateField(auto_now=False, auto_now_add=True)
email = models.EmailField(unique=True, db_index=True)
(more but irrelevant)

class Concert(models.Model):
name = models.CharField(max_length = 255)
technicians = models.ManyToManyField(User)

序列化器.py

class ConcertListSerializer(serializers.ModelSerializer):
technicians = UserDetailSerializer(
many=True,
read_only=True,
source='concert_set'
)

class Meta:
model = models.Concert
fields = [
'name',
'technicians',
'id',
]

class UserDetailSerializer(ModelSerializer):
class Meta:
model = User
fields = [
'name',
'email',
'id',
]

我期望 ConcertListSerializer 中的技术人员字段是包含用户姓名、电子邮件和 ID 的字典列表。为什么它不提供像 DRF Documentation on Nested Serializers 这样的功能?说会..?

最佳答案

为什么添加source您使用与模型字段相同的序列化器字段,只需将其删除即可。

class ConcertListSerializer(serializers.ModelSerializer):
technicians = UserDetailSerializer(
many=True,
read_only=True,
)

关于python - DRF3 在 m2m 关系上创建嵌套序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46561844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com