gpt4 book ai didi

python - 尝试获取 Django 中字段的值时出现 AttributeError - 外键关系

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:27 25 4
gpt4 key购买 nike

请使用序列化程序检查此错误。我有一个模特头像:

class Avatar(models.Model):
user = models.ForeignKey(User, related_name='avatar_user', null=True)
photoset = models.ForeignKey(PhotoSet, null=True, blank=True)
primary = models.BooleanField(default=True)
date_uploaded = models.DateTimeField(default=datetime.datetime.now)
image = models.ImageField(max_length=1024, upload_to=avatar_file_path)

我创建了一个带有头像的序列化器用户

from django.contrib.auth.models import User

class BasicAvatarSerializer(ModelSerializer):
class Meta:
model = Avatar
fields = [
'user',
'photoset',
'image',
]

class UserBasicSerializer(ModelSerializer):
avatar_set = BasicAvatarSerializer(many=True)
class Meta:
model = User
fields = [
'username',
'avatar_set',
'first_name',
'last_name',
]

但出现错误:

AttributeError at /api/v1/users/
Got AttributeError when attempting to get a value for field `avatar_set` on serializer `UserBasicSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `User` instance.
Original exception text was: 'User' object has no attribute 'avatar_set'.

view error by photo

最佳答案

我通过使用成功完全修复了它:

from django.contrib.auth.models import User

class BasicAvatarSerializer(ModelSerializer):
class Meta:
model = Avatar
fields = [
'user',
'photoset',
'image',
]

class UserBasicSerializer(ModelSerializer):
avatar_user = BasicAvatarSerializer(many=True)
class Meta:
model = User
fields = [
'username',
'avatar_user',
'first_name',
'last_name',
]

将 avatar_set 更改为 avatar_user,因为 User 中的lated_name='avatar_user'。谢谢@PRMoureu 和@rollinger!

关于python - 尝试获取 Django 中字段的值时出现 AttributeError - 外键关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46987063/

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