AttributeError: 'Model' object has no attribute '....' Django Rest Framework
AttributeError: 'Model' object has no attribute '....' Django Rest Framework
我有这个型号
class EntityPhoto(models.Model):
user = models.ForeignKey('users.CustomUser', on_delete=models.CASCADE, null=True, related_name='entity_photo_user')
entity = models.ForeignKey('Entity', on_delete=models.CASCADE)
image = models.FileField(upload_to='entities/')
created_at = models.DateTimeField(editable=False, default=timezone.now)
updated_at = models.DateTimeField(default=timezone.now)
class Entity(models.Model):
....
class EntityPhotosSerializer(serializers.ModelSerializer):
image = serializers.SerializerMethodField('get_img')
def get_img(self, entity_photo):
if not entity_photo.image:
raise NotFound
request = self.context.get('request')
return request.build_absolute_uri(entity_photo.image.url)
class Meta:
model = EntityPhoto
fields = ('user', 'entity', 'image',)
class SpecialistSerializer(serializers.ModelSerializer):
reviews_quantity = serializers.IntegerField(source="get_reviews_quantity")
class Meta:
model = Entity
fields = '__all__'
def to_representation(self, instance):
data = super().to_representation(instance)
data['photos'] = EntityPhotosSerializer(many=True, instance=instance.image_set.all()).data
return data
在发出 get 请求后我得到一个错误:
AttributeError: 'Entity' object has no attribute 'image_set'
这很奇怪,因为几天前我对一个通过反向关系以相同方式连接的模型做了同样的事情,我什至复制了代码并且它起作用了。你认为这可能是因为图像文件?我想为每个实体实例显示照片列表(序列化器更改为 url)。
您正在尝试访问“image_set”,但没有链接到实体的“图像”模型。但是,有一个EntityPhoto模型。
这样做
data['photos'] = EntityPhotosSerializer(many=True,instance=instance.image_set.all()).data
不应该给任何东西。
如果你想访问实体的相关实体照片,你应该这样做
data['photos'] = EntityPhotosSerializer(many=True,instance=instance.entityphoto_set.all()).data
我有这个型号
class EntityPhoto(models.Model):
user = models.ForeignKey('users.CustomUser', on_delete=models.CASCADE, null=True, related_name='entity_photo_user')
entity = models.ForeignKey('Entity', on_delete=models.CASCADE)
image = models.FileField(upload_to='entities/')
created_at = models.DateTimeField(editable=False, default=timezone.now)
updated_at = models.DateTimeField(default=timezone.now)
class Entity(models.Model):
....
class EntityPhotosSerializer(serializers.ModelSerializer):
image = serializers.SerializerMethodField('get_img')
def get_img(self, entity_photo):
if not entity_photo.image:
raise NotFound
request = self.context.get('request')
return request.build_absolute_uri(entity_photo.image.url)
class Meta:
model = EntityPhoto
fields = ('user', 'entity', 'image',)
class SpecialistSerializer(serializers.ModelSerializer):
reviews_quantity = serializers.IntegerField(source="get_reviews_quantity")
class Meta:
model = Entity
fields = '__all__'
def to_representation(self, instance):
data = super().to_representation(instance)
data['photos'] = EntityPhotosSerializer(many=True, instance=instance.image_set.all()).data
return data
在发出 get 请求后我得到一个错误:
AttributeError: 'Entity' object has no attribute 'image_set'
这很奇怪,因为几天前我对一个通过反向关系以相同方式连接的模型做了同样的事情,我什至复制了代码并且它起作用了。你认为这可能是因为图像文件?我想为每个实体实例显示照片列表(序列化器更改为 url)。
您正在尝试访问“image_set”,但没有链接到实体的“图像”模型。但是,有一个EntityPhoto模型。
这样做
data['photos'] = EntityPhotosSerializer(many=True,instance=instance.image_set.all()).data
不应该给任何东西。
如果你想访问实体的相关实体照片,你应该这样做
data['photos'] = EntityPhotosSerializer(many=True,instance=instance.entityphoto_set.all()).data