django多个对象更新

时间:2015-10-29 23:30:20

标签: django forms object

我有一个模型我想用相同的'substage'字段值更新多个对象字段'value'。目前我知道如何使用UpdateView更新一个对象字段'value',但我不知道如何为具有相同'subage'数字的多个对象执行此操作。我应该使用表格吗?

somethingElse()

这就是我现在所做的事情:

class ZoneSubStage(models.Model):
    substage = models.ForeignKey(SubStage)
    value = models.PositiveSmallIntegerField(default=0)

zonesubstage_update.html

class ZoneSubStageUpdate(UpdateView):
    model = ZoneSubStage
    fields = ['value']
    template_name = 'autostages/zonesubstage_update.html'

1 个答案:

答案 0 :(得分:0)

如果这是你的模特:

class ZoneSubStage(models.Model):
    substage = models.ForeignKey(SubStage)
    value = models.PositiveSmallIntegerField(default=0)

如果要将所有对象设置为相同的值,请使用form_valid超级覆盖substage方法以调用所有相关substage_set个对象的更新。您可以使用Django ORM update()方法:

class ZoneSubStageUpdate(UpdateView):
    model = ZoneSubStage
    fields = ['value']
    template_name = 'autostages/zonesubstage_update.html'

    def form_valid(self, form):
        self.object.substage_set.update(myfield='new-value')
        return super(ZoneSubStageUpdate, self).form_valid(form)