对于这样的嵌套模型,我遇到以下问题:
def Post(models.Model)
name = models.CharField(unique=True)
content = models.TextField()
def Comment(models.Model)
post = models.ForeignKey(Post)
content = models.CharField()
我创建了带有 all 字段的默认模型序列化器。
问题:
默认模型序列化程序不适用于嵌套模型。我必须明确地编写创建/更新。文档中已经对此进行了解释,因此没有任何不利之处。尽管我认为选择合理的默认设置可以满足99%的用例(对于其余用例,行为可以自定义)。我将尝试对此进行射击。
当我尝试使用现有post对象中的json时,序列化器is_valid()失败,提示“名称上的唯一约束失败”。但是我希望它更新而不是创建。应该基于在json中传递的ID来识别is_valid是否是创建/更新对象。
在创建带有许多注释的新嵌套json时,is_valid()无法说“帖子为空”。当然,我将在json中没有帖子ID,因为尚未创建帖子。因此is_valid变得无用。是否is_valid不取决于id是否在json中传递?另外,如果没有is_valid通行证,我将无法使用data / validated_data。
设置验证程序= []也不会删除字段验证。我尚未找到抑制字段验证的方法。
我遍历了源代码和文档,花了一天多的时间来设置如此简单的内容。
我必须缺少一些简单的东西,所以我们将不胜感激。