【发布时间】:2012-07-09 04:16:42
【问题描述】:
保存 Django 的模型时,X 的正确方法是什么?让我试着解释一下。 :)
例如,我有负责博客文章的模型。如果尚未设置,我想使用标题字段生成 slug 字段。它应该在模型保存之前发生。这就是我目前的实现方式。
def save(self, *args, **kwargs):
if self.slug == '':
self.slug = slugify(self.title)
super(Article, self).save(*args, **kwargs)
还有其他方法吗?还有其他方法比这更好吗?
感谢您的任何建议!
【问题讨论】:
-
这个问题是如果这个模型的 slug 有一个独特的约束,那么你就会遇到问题
-
在您的代码中使用
slugify(self.title)有什么问题,而不是将其保存在数据库中?如果标题改变了怎么办?无论如何 - 你也可以使用django.db.models.signals.pre_save -
Tisho,我不想将业务逻辑放在视图中。看来信号是我正在寻找的! :)
标签: django orm django-models model save