AttributeError: объект 'Model' не имеет атрибута '....' 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", но не существует модели "image", связанной с Entity. Однако существует модель EntityPhoto.
Делаю
data['photos'] = EntityPhotosSerializer(many=True,instance=instance.image_set.all()).data
не должен ничего давать.
Если вы хотите получить доступ к фотографии связанной сущности, вы должны сделать
data['photos'] = EntityPhotosSerializer(many=True,instance=instance.entityphoto_set.all()).data