gpt4 book ai didi

django - 使用已存储在数据库中的数据自动填充 ModelForm

转载 作者:行者123 更新时间:2023-12-01 01:13:11 25 4
gpt4 key购买 nike

我得到了一个如下所示的表单,我希望它在呈现 HTML 时填充来自数据库的信息。我将 Coworker 的 id 作为 View 的参数传递。

请参见下面的代码:

View .py

def EditCoworker(request, id):
form = FormEditCoworker(Coworkers.objects.get(id=id))
if request.method == "POST":
form = FormEditCoworker(request.POST)
if form.is_valid():
form.save()
confirmation_message = "Coworker information updated successfully!"
return render(request, "coworkers/coworkers.html", locals())
else:
return render(request, "coworkers/edit_coworker.html", locals())
return render(request, 'coworkers/edit_coworker.html', locals())

表格.py
class FormEditCoworker(ModelForm):
class Meta:
model = Coworkers

urls.py
url(r'^edit_coworker/(?P<id>[\d]+)$', views.EditCoworker),

当然,我的views.py 中的代码是不对的。

有人可以帮我吗?

提前致谢!

最佳答案

这条线

form = FormEditCoworker(Coworkers.objects.get(id=id))

应该
form = FormEditCoworker(instance=Coworkers.objects.get(id=id))

尽管您应该真正处理 Coworker 不存在的情况
form = FormEditCoworker(instance=get_object_or_404(Coworkers, id=id))

编辑:正如 Alisdair 所说,您还应该将实例关键字 arg 传递给绑定(bind)表单
instance = get_object_or_404(Coworkers, id=id)
form = FormEditCoworker(instance=instance)
if request.method == "POST":
form = FormEditCoworker(request.POST, instance=instance)

关于django - 使用已存储在数据库中的数据自动填充 ModelForm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13914880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com