假设我的项目中有一个模型ArticleVersion
,定义为:
class ArticleVersion(models.Model):
article = models.ForeignKey(Article)
version = models.PositiveIntegerField()
content = models.TextField()
created = models.DateTimeField(auto_now_add=True)
media_type = models.ForeignKey(MediaType)
author = models.ForeignKey(User, null=True)
当用户填写此模型的表单时,我会检查表单中的版本内容是否不同,如果是,我会创建新版本。实际上现在它看起来像这样
if self.old_content != updated_version.content:
# create new version if content is different
updated_version = self.article.articleversion_set.create(
article=self.article,
version=self.article.latest_version.version + 1,
content=updated_version.content,
media_type=updated_version.media_type,
author=updated_version.author
)
但如果我在模型中添加更多字段,那就太冗长了。我想知道有没有办法在Django中更简洁地做这些事情?
答案 0 :(得分:6)
您可以将article.pk
设置为None
,并在保存新条目时创建。