作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用嵌套序列化器。我需要 ProfileSerializer
为获取请求返回完整的相关 Project
对象,并且只考虑 id 切换(改变当前),就像 relatedPrimaryField behaiviour 对于 ProfileSerializer< 上的 post/put 请求
。关于如何实现这一目标的任何解决方案?
class ProfileSerializer(serializers.ModelSerializer):
current = ProjectSerializer()
class Meta:
model = Profile
fields = ('function', 'current')
最佳答案
正如 Linova 所提到的,在不使用第三方库的情况下解决此问题的最简单方法是在序列化程序中声明两个单独的字段。你的嵌套序列化器 current
会保持不变,但您会添加一个新的 PrimaryKeyRelatedField
串行器。嵌套序列化程序应该是只读的,但相关字段不会是只读的。我通常将相关字段命名为 <field>_id
按照惯例。
在 GET 请求中,嵌套序列化程序和 id
字段将被返回,但对于 PUT 或 POST 请求只有 <field>_id
需要指定。
class ProfileSerializer(serializers.ModelSerializer):
current = ProjectSerializer(read_only=True)
current_id = serializers.PrimaryKeyRelatedField(queryset=Projects.objects.all(), source='current')
class Meta:
model = Profile
fields = ('function', 'current', 'current_id')
关于django - DRF PrimaryRelatedField 写入时和 NestedSerializer 读取时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42833368/
我正在使用嵌套序列化器。我需要 ProfileSerializer 为获取请求返回完整的相关 Project 对象,并且只考虑 id 切换(改变当前),就像 relatedPrimaryField b
我正在使用嵌套序列化器。我需要 ProfileSerializer 为获取请求返回完整的相关 Project 对象,并且只考虑 id 切换(改变当前),就像 relatedPrimaryField b
我是一名优秀的程序员,十分优秀!