Объект модели не имеет атрибута HyperlinkedRelatedField

Я проверил десятки примеров и думаю, что делаю это правильно, однако я получаю это сообщение об ошибке "У объекта City" нет атрибута "store". Пожалуйста, помогите, смотрите мой сериализатор в приложении.

class CitySerializer(serializers.HyperlinkedModelSerializer):
    store = serializers.HyperlinkedRelatedField(view_name = 'store:listStoreByCity',read_only=True)

    class Meta:
        model = City
        read_only_fields = ['location']
        fields = [
                "city", 
                "latitude", 
                "longitude",
                "store",
                "state", 
                "img", 
                "location",
            ]

Models.py

from django.contrib.gis.db import models
from localflavor.us.us_states import STATE_CHOICES


class City(models.Model):
    city = models.CharField(max_length=120)
    latitude = models.CharField(blank=True, max_length=11, default=0)
    longitude = models.CharField(blank=True, max_length=11, default=0)
    state = models.CharField(max_length=2, choices=STATE_CHOICES, null=True, blank=True)
    img = models.ImageField(upload_to='img', blank=True)
    location = models.PointField(null=True, blank=True)

    def __str__(self):
        return str(self.city)

1 ответ

По умолчанию DRF будет смотреть на связанные объекты через store имя, которого у вас нет в вашей модели.

Либо установите значение related_name в "store", либо используйте источник аргумента поля исходного сериализатора в сериализаторе. store и установите его "store_set",

Если вам все еще неясно, посмотрите эти случаи, описанные в учебном пособии http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/

Другие вопросы по тегам