擅长:python、mysql、java
<p>嵌套数据的工作方式与我预期的稍有不同。在</p>
<p>如果要将评论连接到电影,则需要将电影对象传递给您的评论,而不是电影对象的主键。在</p>
<p>在幕后,Django会自动在你的comment对象上创建一个新的字段“movie_id”,其中存储了电影的主键,但是你不需要担心这个问题。所以我将注释中的字段称为“movie”,否则Django将创建一个新字段“movie_id_id”。在</p>
<p>我在序列化程序中定义了一个自定义的create方法,得到了类似的结果:</p>
<p>在序列化程序中:</p>
<pre><code>class CommentSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Comment
fields = '__all__'
def create(self, validated_data):
themovieid = validated_data.pop('movie_id', None) # remove movie_id from the comment data
themovie = Movie.objects.get(pk=themovieid) # find the movie object
return Comment.objects.create(movie=themovie, **validated_data)
</code></pre>
<p>我已经试着让它适应你的代码,我希望它能帮助你使这个工作。我已经从你的序列化程序中删除了movie_id:你的模型定义了所有需要的东西。在</p>
<p>编辑:您是否尝试过在评论数据中将电影的id作为“movie”传递,而没有自定义的创建方法,也没有在序列化程序中定义“movie_id”?在</p>