Здравствуйте, у меня такая проблема, есть модель
class Gift(models.Model):
name_en = models.CharField(max_length=100)
name_ro = models.CharField(max_length=100)
name_ru = models.CharField(max_length=100)
description_en = models.TextField(max_length=500)
descriprion_ro = models.TextField(max_length=500)
description_ru = models.TextField(max_length=500)
short_description_en = models.TextField(max_length=500)
short_description_ro = models.TextField(max_length=500)
short_description_ru = models.TextField(max_length=500)
categories = models.ManyToManyField(Category, related_name='gift_categiry')
price = models.DecimalField(max_digits=8, decimal_places=2)
partner= models.ForeignKey(Partner, related_name='gift_provider', on_delete=models.CASCADE)
addresses= models.ManyToManyField(AddressWhereTakeGift, related_name='gift_address')
end_offer_date = models.DateField(auto_now=False, auto_now_add=False, blank=True)
is_offer_avalabale = models.BooleanField(default=True)
is_delivery = models.BooleanField(default=False)
is_hot_offer = models.BooleanField(default=False)
pub_date = models.DateField(auto_now_add=True)
discaunt=models.CharField(max_length=3, blank=True)
preview = models.ImageField(upload_to="gift_preview")
ещё есть модель
class GiftPicture(models.Model):
gift = models.ForeignKey(Gift, related_name='gift_picture', on_delete=models.CASCADE)
picture = models.ImageField(upload_to="gift_galery")
которая связана с Gift
По поводу ошибок в проектировке БД, прошу не обращать на это внимание буду переделывать когда полностью разберусь с тем как работает механизм
Итак, дальше у меня есть следующий сериалайзер
class GiftDitaleEnSerializer(serializers.ModelSerializer):
gift_picture = serializers.HyperlinkedIdentityField('gift_picture', view_name='gift_photo-list')
name = serializers.CharField(source='name_en')
description = serializers.CharField(source='description_en')
partner = PartnerSerializerForGiftDitail(read_only=True)
addresses = AddressWhereTakeGiftSerializer(read_only=True, many=True)
class Meta:
model = Gift
fields = ('id',
'price',
'partner',
'addresses',
'is_delivery',
'is_hot_offer',
'discaunt',
'preview',
'name',
'description',
'gift_picture',)
тут также на лицо ошибки в проектировке, но тут у меня не получается иначе получить результат.
В общем проблема на текущий момент следующая, поле
gift_picture = serializers.HyperlinkedIdentityField('gift_picture', view_name='gift_photo-list')
выдает ошибку
Could not resolve URL for hyperlinked relationship using view name "gift_photo-list". You may have failed to include the related model in your API, or incorrectly configured the `lookup_field` attribute on this field.
Возможно я выбрал не то поле для сериалайзера, а может надо переопределить get_queryset (не знаю как конкретно).
Подскажите пожалуйста как это исправить.
Еще я собираюсь поместить поля
name_en = models.CharField(max_length=100)
name_ro = models.CharField(max_length=100)
name_ru = models.CharField(max_length=100)
description_en = models.TextField(max_length=500)
descriprion_ro = models.TextField(max_length=500)
description_ru = models.TextField(max_length=500)
short_description_en = models.TextField(max_length=500)
short_description_ro = models.TextField(max_length=500)
short_description_ru = models.TextField(max_length=500)
также в связанные таблицы как и
class GiftPicture(models.Model):
gift = models.ForeignKey(Gift, related_name='gift_picture', on_delete=models.CASCADE)
picture = models.ImageField(upload_to="gift_galery")
подскажите какие поля сериалайзера выбрать для этого?
P.S. С удовольствием приму совет по привидению сериалазера в нормальный вид, то есть 1 модель 1 сериалайзер. Спасибо.
Updated 2 Feb. 2017, 15:08 by palzuncoff.