擅长:python、mysql、java
<p>在我看来,最符合REST框架的解决方案是分别使用嵌套序列化器和<code>PrimaryKeyRelatedField</code>。有了它,您可以接收<code>CustomTarget</code>嵌套对象作为<code>custom_target</code>,并可以在创建时通过其ID将{<cd5>}对象作为POST参数来关联{<cd2>}。在</p>
<pre><code>class DataSetColumnSerializer(serializers.ModelSerializer):
custom_target = target_serializers.CustomTargetSerializer(read_only=True)
custom_target_id = serializers.PrimaryKeyRelatedField(source='custom_target')
class Meta:
model = dataset_models.DataSetColumn
</code></pre>
<p>但是,您将得到两个属性<code>custom_target</code>和{<cd5>},这两个属性可能并不理想。作为通用解决方案,可以实现自定义字段。在</p>
<p><strong>通用方法:自定义相关字段</strong></p>
^{pr2}$
<p>将其用作:</p>
<pre><code>class DataSetColumnSerializer(serializers.ModelSerializer):
custom_target = NestedRelatedField(CustomTargetSerializer)
</code></pre>