Я новичок в 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>