擅长:python、mysql、java
<p>如果有其他人面临这种情况,我想出的最合适的解决方案是,在创建对象时使用jobtags的超链接序列化,并将嵌套序列化用作输出:</p>
<p>我为每种情况编写了序列化程序,用于序列化发送到客户机的数据:</p>
<pre><code>class JobTagNestedSerializer(serializers.HyperlinkedModelSerializer):
tag = TagSerializer()
class Meta:
model = JobTag
fields = ('tag',)
depth=1
class JobNestedSerializer(serializers.HyperlinkedModelSerializer):
jobtags=JobTagNestedSerializer(many=True,read_only=True)
class Meta:
model = Job
fields = ('url','name', 'employer','jobtags','description')
read_only_fields = ('employer',)
</code></pre>
<p>对于创建新作业,对于从客户端发送到DRF的数据:</p>
^{pr2}$
<p>所以DRF希望客户端的POST-json看起来像:</p>
<pre><code>{
"name": "Odprac mi sneh",
"employer": "http://127.0.0.1:8000/api/users/4/",
"jobtags": [
{
"tag": "http://127.0.0.1:8000/api/tags/2/"
},
{
"tag": "http://127.0.0.1:8000/api/tags/5/"
}
],
"description": "veela sneu nemam ruky makam makam makamam"
}
</code></pre>