我有一个模型,我可以在将其保存到数据库之前自动设置一个值...到目前为止,我确实以这种方式覆盖了save()
:
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
if not self.paramX:
self.paramX = value
super(Post, self).save(force_insert, force_update, using, update_fields)
无论如何,使用bulk_create()
这不起作用......我该怎么办? (我正在尝试使用信号,但没有运气)
答案 0 :(得分:3)
不会调用模型的save()方法,也不会发送pre_save和post_save信号。
这是因为批量保存方法使用另一种方法来保存数据。因此,一种方法是在创建要插入的每个条目时手动执行此操作。
答案 1 :(得分:0)
我的偏好如下:
class Instrument(models.Model):
name = models.CharField(max_length=20)
def __init__(self, *args, **kwargs):
super(Instrument, self).__init__(*args, **kwargs)
self.name = "Bass"
修改强>
我刚刚重新阅读了你的问题。如果您只关心在保存时是否设置了“paramX”字段,那么您是否只能在模型字段中添加“默认”?即。
class Instrument(models.Model):
name = models.CharField(max_length=20, default="No instrument")