Объект модели не имеет атрибута 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/