我有一个模型可以覆盖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/

10-12 20:15