2015-11-13 3 views
0

Я пытаюсь добавить гиперссылки в список «проводки», которые имеют определенную «категорию» IDобъект не имеет атрибута - HyperlinkedRelatedField

URL-адрес, который я пытаюсь создать для/категорий/

models.py

class Categories(models.Model): 
    .... 
    idcategories = models.AutoField(db_column='idCategories', primary_key=True) 

class Postings(models.Model): 
    idpostings = models.AutoField(db_column='idPostings', primary_key=True) # Field name made lowercase. 
    idcategories = models.ForeignKey(Categories, db_column='idCategories') # Field name made lowercase. 
    .... 

serializers.py

class CategorySerializer(serializers.HyperlinkedModelSerializer): 
    postings = serializers.HyperlinkedRelatedField(many=True, view_name='postings-detail', read_only=True) 

    class Meta: 
     model = models.Categories 
     fields = ('url', 'idcategories', 'categoriesname', 'categoryimageurl', 'postings') 

views.py

url(r'postings/(?P<pk>[0-9]+)/$', postings_detail, name='postings-detail'), 

У меня есть соответствующие взгляды настроенные, которые работают, если я удалю HyperlinkedRelatedField на CategorySerializer

По существу я хочу:

JSON: 
categoryname : <name>, 
postings : [<list_of_postings>] 

Так что с выше коде, я получаю следующее ошибка:

AttributeError at/categories/ Объект категории не имеет атрибутов '

ответ

0

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

Либо установите idcategories related_name на «проводки», либо используйте аргумент поля источника сериализатора source в проводниках сериализатора и установите его в «postings_set».

+0

Я основывал свой код на примере из DRF [link] (http://www.django-rest-framework.org/tutorial/5-relationships-and-hyperlinked-apis/), и это не кажется как они использовали related_name – kaminsky59

+0

http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/#adding-information-to-our-model Linovia

Смежные вопросы