【发布时间】:2011-09-22 00:25:27
【问题描述】:
我有一个模型覆盖 save() 来对字段进行 slugify:
class MyModel(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(max_length=200)
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
super(MyModel, self).save(*args, **kwargs)
当我运行 load data 来加载夹具时,这个 save() 似乎没有被调用,因为数据库中的 slug 字段为空。我错过了什么吗?
我可以通过 pre_save 钩子信号让它工作,但这有点小技巧,让save() 工作会很好。
def mymodel_pre_save(sender, **kwargs):
instance = kwargs['instance']
instance.slug = slugify(instance.name)
pre_save.connect(mymodel_pre_save, sender=MyModel)
提前致谢。
【问题讨论】:
标签: django django-models