如何从模型中的字段中获取数据并将它们填充到 Django 表单中
How to grab data from fields in the model and populate them to a django form
我目前正在构建一个创建布局页面,供用户输入值并在模板中使用。我现在的问题是在我的视图函数中,我无法从模型中获取字段数据并将其重新填充到 django 表单中。我只想为布局模型输入 1 个数据条目,该数据条目始终被抓取并放入表单中,以便用户可以编辑然后重新保存它。此问题将驻留在 View.py 中。这是我拥有的:
View.py:
def create_layoutform(request, template_name='layout/create.html'):
if len(Layout.objects.all()) > 0:
# if you have a form, load it
MyLayout = Layout.objects.get(pk=1)
LayoutUpdateForm = LayoutForm(MyLayout)
tmpl_vars = {
'layoutupdateform':LayoutUpdateForm,
}
return render(request, template_name, tmpl_vars)
else:
layout_form = LayoutForm(request.POST or None)
layout = layout_form.save(commit=False)
layout.save()
tmpl_vars = {
'layoutform':layout_form,
}
return render(request, template_name, tmpl_vars)
我的视图打印输出:Layout.objects.get(pk=1)
仅获取模型名称(布局对象)
我相信是因为这条线; LayoutUpdateForm = LayoutForm(MyLayout)
。 Django 表单的第一个参数是 data
,但您想要使用 instance
个参数 [1]。尝试将其更改为 LayoutUpdateForm = LayoutForm(instance=MyLayout)
。
注意:这假设您的 LayoutForm
继承自 forms.ModelForm
。
[1] https://github.com/django/django/blob/master/django/forms/models.py#L313
我目前正在构建一个创建布局页面,供用户输入值并在模板中使用。我现在的问题是在我的视图函数中,我无法从模型中获取字段数据并将其重新填充到 django 表单中。我只想为布局模型输入 1 个数据条目,该数据条目始终被抓取并放入表单中,以便用户可以编辑然后重新保存它。此问题将驻留在 View.py 中。这是我拥有的:
View.py:
def create_layoutform(request, template_name='layout/create.html'):
if len(Layout.objects.all()) > 0:
# if you have a form, load it
MyLayout = Layout.objects.get(pk=1)
LayoutUpdateForm = LayoutForm(MyLayout)
tmpl_vars = {
'layoutupdateform':LayoutUpdateForm,
}
return render(request, template_name, tmpl_vars)
else:
layout_form = LayoutForm(request.POST or None)
layout = layout_form.save(commit=False)
layout.save()
tmpl_vars = {
'layoutform':layout_form,
}
return render(request, template_name, tmpl_vars)
我的视图打印输出:Layout.objects.get(pk=1)
仅获取模型名称(布局对象)
我相信是因为这条线; LayoutUpdateForm = LayoutForm(MyLayout)
。 Django 表单的第一个参数是 data
,但您想要使用 instance
个参数 [1]。尝试将其更改为 LayoutUpdateForm = LayoutForm(instance=MyLayout)
。
注意:这假设您的 LayoutForm
继承自 forms.ModelForm
。
[1] https://github.com/django/django/blob/master/django/forms/models.py#L313