Django auto_now字段未随使用筛选器()更新而更新
我正在使用Django 2.0 我有一个这样的模特Django auto_now字段未随使用筛选器()更新而更新,django,django-models,Django,Django Models,我正在使用Django 2.0 我有一个这样的模特 class MyModel(models.Model): update_new = models.CharField(blank=True, max_length=200) modified = models.DateTimeField(auto_now=True) created = models.DateTimeField(auto_now_add=True) 并使用模型管理器更新模型数据 class MyMode
class MyModel(models.Model):
update_new = models.CharField(blank=True, max_length=200)
modified = models.DateTimeField(auto_now=True)
created = models.DateTimeField(auto_now_add=True)
并使用模型管理器更新模型数据
class MyModelManager(models.Manager):
def get_queryset(self):
return MyModelQueryset(self.model, self._db)
def update_or_create(self, pk, **save_data):
record = MyModel.objects.filter(
pk=pk
)
if record.exists():
# setting field manually for testing
save_data['update_new'] = 'anuj'
uc = record.update(**save_data)
print(uc) # prints 1
return record.first(), True
record, created = self.get_queryset().get_or_create(
pk=pk
**save_data
)
return record, created
这可以很好地工作,并且会更新值。但是,修改的字段不会更新。创建的和修改的字段中的值保持不变(创建记录时的时间戳)中描述的此行为: 该字段仅在调用Model.save()时自动更新。这个 在以其他方式更新其他字段时,不会更新字段 例如QuerySet.update(),但您可以为其指定自定义值 这样的更新中的字段
此行为在以下内容中描述: 该字段仅在调用Model.save()时自动更新。这个 在以其他方式更新其他字段时,不会更新字段 例如QuerySet.update(),但您可以为其指定自定义值 这样的更新中的字段
我想知道他们为什么选择那样做。。似乎是一个bug而不是一个特性。我想知道他们为什么选择这样做。。似乎是一个bug而不是一个特性。