【发布时间】:2018-05-17 07:23:35
【问题描述】:
我能够从我的 api 中返回以下响应,而不是粗体文本。
{ “数据”: { “类型”:“用户”, “id”:“2”, “属性”: { “电子邮件”:“test@test.com”, “名称”:“第一个最后一个”, }, “关系”:{ “企业”:{ “数据”: { “类型”:“业务”, “身份证”:“1” “属性”:{ “名称”:“地点:, “地址”:“foo”, } } },
我正在使用Django Rest Framework JSON Api 来格式化对 JSON Api 规范的响应,我想知道我需要做什么才能将属性添加到关系对象中的响应中。似乎业务序列化程序是问题,但是他们的文档对于如何获得这样格式的响应并不是很清楚,因为它显示了如何只获取业务的主键返回。有什么想法吗?
我的序列化器如下所示:
from rest_framework import serializers
from rest_framework_json_api import serializers as srs
from rest_framework_json_api.relations import ResourceRelatedField, SerializerMethodResourceRelatedField
from businesses.serializers import BusinessSerializer
from businesses.models import Business
from . import models
class UserSerializer(serializers.ModelSerializer):
token = srs.SerializerMethodField()
# necessary for M2M fields & reverse FK fields
businesses = ResourceRelatedField(read_only=True, allow_null=True)
review_user = ResourceRelatedField(read_only=True, allow_null=True, many=True)
booking_user = ResourceRelatedField(read_only=True, allow_null=True, many=True)
#businesses = serializers.PrimaryKeyRelatedField(queryset=Business.objects.all(), required=False)
#businesses = BusinessSerializer(read_only=True)
"""Meta class tells Django what fields we want to take from the model"""
class Meta:
# links the serializer to the model class
model = models.User
# this is a tuple
fields = ('id', 'email', 'password', 'name', 'phone', 'location', 'token', 'has_business', 'is_active', 'businesses')
extra_kwargs = {'password': {'write_only': True}}
【问题讨论】:
标签: python django-rest-framework json-api