使用django中的表单更新模型实例的所有记录

时间:2014-08-02 13:02:20

标签: django

我正在为用户提供使用表单编辑记录的选项。我的模型非常大,一次更新所有记录对我来说很乏味。截至目前,我正在使用Model的 id字段将数据字段提取到表单的输入框。如何根据此 id字段更新模型中的所有数据字段。

2 个答案:

答案 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