django - 对象没有属性 - HyperlinkedRelatedField

标签 django django-rest-framework

我正在尝试将超链接添加到具有特定“类别”ID 的“帖子”列表

我尝试构建的 URL 是/categories/

模型.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.
    ....

序列化器.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')

View .py

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

我设置了适当的 View ,如果我删除 CategorySerializer 上的 HyperlinkedRelatedField,该 View 就可以工作

基本上我想要:

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

因此,使用上面的代码,我收到以下错误:

/categories/处的属性错误 “类别”对象没有属性“帖子”

最佳答案

默认情况下,DRF 将通过模型中没有的帖子名称查看相关对象。

将 idcategories lated_name 设置为“postings”,或者在序列化程序的 posts 中使用源序列化程序的字段参数 source 并将其设置为“postings_set”。

关于django - 对象没有属性 - HyperlinkedRelatedField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33686220/

相关文章:

python - 无法使用 Python requests lib POST 文件附件和数据参数

python - 如何编写查询集来显示链接到某个类别的所有产品?

python - 是否可以在中间件中过滤掉一些数据库行?

nginx - drf_yasg swagger 中的 base_url 问题

javascript - 网站真的需要 DjangoRestFrameWork

python - 如何在 Django 中测试 celery period_task?

javascript - Flot 未在 Django 中渲染

python - Django REST Framework client.login() 不起作用。 (用户创建)

使用 AngularJS 和 Django REST 框架的 Facebook 身份验证

django - 在 Django Rest Framework API 中设置 cookie