如何在Django中的许多更新中更新上次更改的字段
假设我有两个型号如何在Django中的许多更新中更新上次更改的字段,django,model,Django,Model,假设我有两个型号Pizza和Topping,Pizza型号有一个last\u changed字段,带有auto\u now=True和一个manytomy与Topping的关系 现在,每当我在比萨饼中添加另一个顶部时,我希望上次更改的字段得到更新。不幸的是,这不会自动更新,因为在这种情况下,Pizza模型不会保存。这是因为manytomy关系保存在单独的(自动创建的)模型和表中 那么,更新上次更改的字段的最佳方法是什么?您可以在您的比萨饼模型上有一个方法,每当您向其添加顶饰时,该方法都会被调用
Pizza
和Topping
,Pizza
型号有一个last\u changed
字段,带有auto\u now=True
和一个manytomy
与Topping
的关系
现在,每当我在比萨饼
中添加另一个顶部
时,我希望上次更改的字段得到更新。不幸的是,这不会自动更新,因为在这种情况下,Pizza
模型不会保存。这是因为manytomy
关系保存在单独的(自动创建的)模型和表中
那么,更新上次更改的字段的最佳方法是什么?您可以在您的比萨饼
模型上有一个方法,每当您向其添加顶饰时,该方法都会被调用
class Pizza(models.Model):
toppings = models.ManyToManyField('Toppings', related_name="pizzas")
last_changed = models.DateTimeField(auto_now=True, blank=True)
# Your other fields here
def add_topping(self, topping):
self.toppings.add(topping)
self.save() # Which would update last_changed
但我也建议不要立即使用auto\u
()。很抱歉回复太晚,谢谢您的建议。我只是想知道如何强制每个人都调用add_topping方法。如果我必须强制执行,我可以直接强制每个人只调用save()。@Fabian:你说的强制是什么意思?你不写代码吗?对不起,如果我不明白