我正在为用户提供使用表单编辑记录的选项。我的模型非常大,一次更新所有记录对我来说很乏味。截至目前,我正在使用Model的 id字段将数据字段提取到表单的输入框。如何根据此 id字段更新模型中的所有数据字段。
答案 0 :(得分:0)
我会根据你的模型为Form Model做一个。 https://docs.djangoproject.com/en/dev/topics/forms/modelforms/
发布时(使用POST或PUT http方法)使用表单模型检查数据是否正确并更新它:
if request.POST:
obj_form = ObjForm(request.POST)
if obj_form.is_valid():
ojb = Obj.objects.get(pk=obj_id)
ojb_form = ObjForm(request.POST, instance = obj)
obj_form.save()
#Do whatever you want
答案 1 :(得分:0)
如果您要求更新字段across multiple records,请:
# Update all the headlines with pub_date in 2007.
Entry.objects.filter(pub_date__year=2007).update(
headline='Everything is the same'
)
或者您可以将通用update view中的内置版本与model form:
一起使用from django.forms import ModelForm
from django.views.generic import UpdateView
# forms.py
class EntityForm(ModelForm):
class Meta:
model = Entity
# views.py
class UpdateEntry(UpdateView):
# See the attribute `fields` for further configuration
form_class = EntryForm