обновить / отредактировать запись в django используя формы - PullRequest
0 голосов
/ 22 января 2020

Я новичок в django и видел несколько ответов об обновлении / редактировании записи в django формах. что Scenerio не работают для меня. ниже приведены мои фрагменты кода.

Вот мои модели:

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')),

 ]

шаблон:

  <!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>
...