Почему содержимое моих форм отображается в заголовке для функции редактирования? Django
В настоящее время я выполняю задание, где одним из требований к функции редактирования является то, что пользователь должен иметь возможность нажать на кнопку редактирования и перейти на страницу, где у него будет возможность отредактировать то, что он написал ранее.
Проблема, с которой я сталкиваюсь, заключается в том, что я использую INITIAL для перемещения ранее заполненного содержимого, чтобы оно отображалось, но оно продолжает отображаться в заголовке страницы, а не внутри содержимого textarea.
Я пытался настроить это, но после нескольких попыток, я продолжаю получать ту же проблему, когда я отправляю это, это дает мне новую запись/страницу, когда то, что я хочу сделать, это редактировать страницу, а не создавать новую страницу.
VIEWS.PY
class AddPageForm(forms.Form):
title = forms.CharField()
content = forms.CharField(widget=forms.Textarea(
attrs={
"class": "form-control",
})
)
def edit_page(request, title):
if request.method == "GET":
title = title
content = util.get_entry(title)
form = AddPageForm({"title": title, "content": content})
return render(
request,
"encyclopedia/editpage.html",
{"form": form, "title": title}
)
form = AddPageForm(request.POST)
if form.is_valid():
title = form.cleaned_data.get("title")
content = form.cleaned_data.get("content")
util.save_entry(title=title, content=content)
return redirect('encyclopedia:entrypage', title)
РЕДАКТИРОВАТЬ СТРАНИЦУ
{% block body %}
<h1>Edit</h1>
<form action="{% url 'encyclopedia:editpage' title %}" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" class="btn btn-secondary">
</form>
{% endblock %}
СТРАНИЦА ВХОДА
{% block body %}
{{ content|safe }}
<a href="{% url 'encyclopedia:editpage' title %}" class="btn btn-primary">Edit</a>
{% endblock %}
URLS.PY
app_name = "encyclopedia"
urlpatterns = [
path("", views.index, name="index"),
path("wiki/<str:title>", views.entry_page, name="entrypage"),
path("search", views.search, name="search"),
path("add_page", views.add_page, name="addpage"),
path("edit_page/<str:title>", views.edit_page, name="editpage")
]
В функции get_entry вы получаете объект, правильно? Если да измените ваше представление на что-то вроде этого
content = util.get_entry(title)
form = AddPageForm({"title": title, "content": content.content})