jsh*_*crm 6 python django django-rest-framework
我想允许 HyperLinkRelatedField 只接受一个 id 而不是需要一个超链接来创建一个对象的新实例,但是对于获取请求,我想返回的超链接不仅仅是一个 id 但它似乎是一个或其他。这可能吗?
class Blog(serializers.HyperlinkedModelSerializer):
class Meta:
model = Blog
fields = ('url', 'id')
class Comment(serializers.HyperlinkedModelSerializer):
blog = serializers.HyperlinkedRelatedField(view_name='blog-detail', queryset=Blog.objects.all())
class Meta:
model = Comment
fields = ('url', 'text', 'blog')
Run Code Online (Sandbox Code Playgroud)
GET请求评论返回(这是完美的):
{'url': 'mysite.fake/comments/1', 'text': 'test text', 'blog': 'mysite.fake/blog/1'}
Run Code Online (Sandbox Code Playgroud)
POST请求需要:
{'text': 'test text', 'blog': 'mysite.fake/blog/1'}
Run Code Online (Sandbox Code Playgroud)
我也希望能够通过:
{'text': 'test text', 'blog': '1'}
Run Code Online (Sandbox Code Playgroud)
这是可能的,但不是开箱即用的。
您应该使用ModelSerializer
并定义您自己的关系字段。以 a 开头PrimaryKeyRelatedField
并覆盖 the ,to_representation
因此它返回url 而不是 id。
归档时间: |
|
查看次数: |
1319 次 |
最近记录: |