我正在尝试创建一个Django嵌套序列化器。
这是我的序列化器:
class GetUsersSerializer(serializers.ModelSerializer):
name = NameSerializer(source='user_id')
birthday = BirthdaySerializer(source='user_id')
class Meta:
model = User
fields = ('user_id',
'username',
'name',
'birthday')
和辅助序列化程序:
class BirthdaySerializer(serializers.ModelSerializer):
class Meta:
model = Eligibility
fields = ('dobd',
'dobm',
'doby',)
class NameSerializer(serializers.ModelSerializer):
class Meta:
model = Demographics
fields = ('firstname',
'lastname',)
人口统计模型和资格模型都具有用户模型的外键(这些外键都是模型文件中的用户 - 并且它们作为user_id存储在数据库中)。
我应该在源字段中添加什么内容?目前我有user_id,它是User模型上的辅助id字段(不是pk),我应该使用pk代替(id)吗?
我应该将参数many = True传递给序列化程序吗?每个用户应该只有一个实例。
也得到:
AttributeError: Got AttributeError when attempting to get a value for field `firstname` on serializer `NameSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `int` instance.
Original exception text was: 'int' object has no attribute 'firstname'.