Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用表单在django中更新/编辑记录_Python 3.x_Django Forms - Fatal编程技术网

Python 3.x 使用表单在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

我是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:

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
。如果这不是你真正的代码,请发布真正的代码-调试已经够痛苦的了,我们没有时间玩猜谜游戏;-)