我有一个模型可以覆盖save()来对字段进行分段:
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)
当我运行加载数据以加载灯具时,此
save()
似乎没有被调用,因为在数据库中slug字段为空。我想念什么吗?我可以通过pre_save钩子(Hook)信号使其正常工作,但这有点麻烦,而使
save()
正常工作也很好。def mymodel_pre_save(sender, **kwargs):
instance = kwargs['instance']
instance.slug = slugify(instance.name)
pre_save.connect(mymodel_pre_save, sender=MyModel)
提前致谢。
最佳答案
不你不是。设计不会通过loaddata调用save()(我想这会占用更多的资源)。对不起。
编辑:根据文档,预保存也不被调用(即使显然是?)。
根据https://docs.djangoproject.com/en/dev/ref/django-admin/#what-s-a-fixture,数据按原样保存到数据库中
关于Django model.save()无法与loaddata一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7508226/