Python 3.x 使用表单在django中更新/编辑记录
我是django的新手,在django表单中很少看到关于更新/编辑记录的答案。那个场景不适合我。下面是我的代码片段 这是我的模型:Python 3.x 使用表单在django中更新/编辑记录,python-3.x,django-forms,Python 3.x,Django Forms,我是django的新手,在django表单中很少看到关于更新/编辑记录的答案。那个场景不适合我。下面是我的代码片段 这是我的模型: class author(models.Model): author_name = models.CharField(max_length=20) book_name = models.CharField(max_length=20) content = models.TextField(max_length=200) forms.py: cla
class author(models.Model):
author_name = models.CharField(max_length=20)
book_name = models.CharField(max_length=20)
content = models.TextField(max_length=200)
forms.py:
class AuthorForm(forms.ModelForm):
class Meta:
model = author
fields = ['author_name', 'book_name', 'content']
views.py:
def update_record(request,id):
if request.POST:
book_form = AuthorForm(request.POST)
if book_form.is_valid():
author = AuthorForm.objects.get(pk=id)
book_form = AuthorForm(request.POST, instance = author)
book_form.save()
return HttpResponse('Update_record')
else:
book = AuthorForm.objects.get(pk = id)
book_form = AuthorForm(instance=book)
return render(request, 'update.html', {'form':book_form })
应用程序级url:
urlpatterns = [
path('crud_4/', views.update_record),
]
项目级url:
urlpatterns = [
path('crud_url/(?P<id>\d+)/$', include('myapp_2.urls')),
]
urlpatterns=[
路径('crud_url/(?P\d+/$),包括('myapp_2.url'),
]
模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Update</title>
</head>
<body>
<form action="" method="post">
{{form.as_p }}
{% csrf_token %}
<input type="submit" value="submit">
</form>
</body>
</html>
更新
{{form.as_p}}
{%csrf_令牌%}
“不工作”是对问题的完全无用的描述。请编辑您的问题以准确地解释它是如何“不起作用的”-如果您遇到错误,请发布确切的异常消息和完整的回溯,否则请解释发生了什么(以及您是如何检查的)。尽管如此,您的代码片段在一些方面是错误的,第一个是您正在使用AuthorForm
而不是author
(顺便说一句,它应该被命名为author
)来获取模型实例。如果这真的是你的代码,它确实会引发一个AttributeError
。如果这不是你真正的代码,请发布真正的代码-调试已经够痛苦的了,我们没有时间玩猜谜游戏;-)