django多对象更新
我有一个模型,我想用相同的“子阶段”字段值更新多个对象字段“值”。目前,我知道如何使用UpdateView更新一个对象字段“value”,但我不知道如何对具有相同“substage”编号的多个对象进行更新。我应该用表格吗django多对象更新,django,forms,object,Django,Forms,Object,我有一个模型,我想用相同的“子阶段”字段值更新多个对象字段“值”。目前,我知道如何使用UpdateView更新一个对象字段“value”,但我不知道如何对具有相同“substage”编号的多个对象进行更新。我应该用表格吗 class ZoneSubStage(models.Model): substage = models.ForeignKey(SubStage) value = models.PositiveSmallIntegerField(default=0) 这就是我目
class ZoneSubStage(models.Model):
substage = models.ForeignKey(SubStage)
value = models.PositiveSmallIntegerField(default=0)
这就是我目前所做的:
class ZoneSubStageUpdate(UpdateView):
model = ZoneSubStage
fields = ['value']
template_name = 'autostages/zonesubstage_update.html'
zonesubstage_update.html
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Update" />
</form>
{%csrf\u令牌%}
{{form.as_p}}
如果这是您的型号:
class ZoneSubStage(models.Model):
substage = models.ForeignKey(SubStage)
value = models.PositiveSmallIntegerField(default=0)
超级重写form\u valid
方法,以调用所有相关子阶段
对象的更新,如果要将它们全部设置为相同的值,请使用substage\u set
。您可以使用Django ORMupdate()
方法:
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)
如果这是您的型号:
class ZoneSubStage(models.Model):
substage = models.ForeignKey(SubStage)
value = models.PositiveSmallIntegerField(default=0)
超级重写form\u valid
方法,以调用所有相关子阶段
对象的更新,如果要将它们全部设置为相同的值,请使用substage\u set
。您可以使用Django ORMupdate()
方法:
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)
你要的是a。你要的是a。我不想把它们都设置为相同的值。我希望能够决定在一个表单中分别为它们设置什么值。因此,想象一个页面显示了这些值,这样我就可以分别单击每个值,通过键入值来更改值,并在为所有值按一个按钮update后进行更新。@BlueTomato然后您需要使用@ivan提到的
Django FormSet
。我不想将它们全部设置为相同的值。我希望能够决定在一个表单中分别为它们设置什么值。因此,想象一下一个页面显示了这些值,这样我就可以分别单击每个值,然后通过键入值来更改值,并在为所有值按下一个按钮update后进行更新。@BlueTomato然后您需要使用@ivan提到的Django表单集
。