我有以下问题,我有默认的用户模型和配置文件模型。我想将它们合并到一个序列化程序中,但没有嵌套-这太难看了。相反,我希望所有字段都位于第一级。所以我创建了以下内容(为了简单起见,profile只包含一个Bool字段和一个relation字段):
class UserSerializer(serializers.ModelSerializer):
achievements = serializers.PrimaryKeyRelated(many=True, queryset=Achievements.objects.all())
trusted = serializers.BooleanField()
def create(self, validated_data):
user=User.objects.create_user(
password = validated_data['password'],
username = validated_data['username'],
email = validated_data['email'],
)
Profile.objects.update_or_create(user, defaults={
'trusted': validated_data['trusted'],
'achievements': validatd_data['achievements'],
}
)
return user
class Meta:
model = User
fields = ("id", "username", "email", "password", "trusted", "achievements"),
read_only = ("id",)
extra_kwargs = {
'password': {
'write_only': True,
},
}
配置文件通过包含models.OneToOneField
实例的用户字段连接到用户。你知道吗
当我试图列出所有的概要文件时,我得到了一个错误,我需要指定source
,但我不知道怎么做,文档中只提到了应该使用点符号的东西。你知道吗
谢谢。你知道吗
source
是序列化程序字段的参数。你应该这样做:相关问题 更多 >
编程相关推荐