我正在使用 Django Rest Framework JSON API创建 REST API。我只是想简单地包含一个相关资源(二级关系),但 Django 一直响应错误:
This endpoint does not support the include parameter for path...
结构是这样的:
# models:
class Household(models.Model):
...
class HouseholdMember(models.Model):
household = models.ForeignKey(Household)
...
class Subscription(models.Model):
subscriber = models.ForeignKey(HouseholdMember)
...
# serializers
from rest_framework_json_api import serializers
class SubscriptionSerializer(serializers.ModelSerializer):
class Meta:
model = Subscription
我希望能够发出这样的请求:http://example.com/api/subscriptions?include=subscriber.household
以便能够按家庭对订阅进行分组。但是,我根本不知道该怎么做。 I know我需要尝试使用 ResourceRelatedField
但我遗漏了一些东西或太多的新手无法理解它是如何工作的。有帮助吗?
最佳答案
好吧,也许我遗漏了一些明显的东西(因为文档中没有提到),但是如果您查看 serializers.py
在 Django Rest Framework JSON API 源的示例目录中的文件,看起来你需要一个名为 included_serializers
的变量来做我想做的事。对于我的示例,这是您需要的:
# models:
class Household(models.Model):
...
class HouseholdMember(models.Model):
household = models.ForeignKey(Household)
...
class Subscription(models.Model):
subscriber = models.ForeignKey(HouseholdMember)
...
# serializers
from rest_framework_json_api import serializers
class HouseholdSerializer(serializers.ModelSerializer):
class Meta:
model = Household
class HouseholdMemberSerializer(serializers.ModelSerializer):
included_serializers = {
'household': HouseholdSerializer
}
class Meta:
model = HouseholdMember
class SubscriptionSerializer(serializers.ModelSerializer):
included_serializers = {
'subscriber': SubscriberSerializer
}
class Meta:
model = Subscription
关于python - 如何使用 Django Rest Framework JSON API 包含相关资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38900889/