Он возвращает только страницу редактирования без перенаправления на страницу результатов (заголовок. html функцией ввода). Любая помощь будет оценена. Мой код выглядит следующим образом:
views.py
from django.shortcuts import render
from . import util
import markdown2
import random
from django.shortcuts import HttpResponse
from django.http import HttpResponseRedirect
from django.urls import reverse
from django import forms
import pdb; pdb.set_trace()
class EntryForm(forms.Form):
title = forms.CharField()
content = forms.CharField(widget=forms.Textarea)
def edit(request, title):
data = {
'title': title,
'content': util.get_entry(title)
}
original_form = EntryForm(data)
entries = util.list_entries()
rand = random.choice(entries)
if request.method == "POST":
form = EntryForm(request.POST)
if form.is_valid():
title = form.cleaned_data['title']
content = form.cleaned_data['content']
util.save_entry(title, content)
return HttpResponseRedirect(reverse("entry", args=(title,)))
return render(request, "encyclopedia/edit.html", {
"form": original_form,
"random": rand
})
urls.py
urlpatterns = [
path("", views.index, name="index"),
path("create", views.create, name="create"),
path("edit/<str:title>", views.edit, name="edit"),
path("search", views.search, name="search"),
path("<str:title>", views.entry, name="entry")
]
title. html для функции входа:
{% block body %}
{{ content|safe }}
<form action="{% url 'edit' title %}">
<input type="submit" value="Edit">
</form>
{% endblock %}
Я изменил функцию редактирования, теперь метод публикации должен работать, я протестировал его при создании новой функции страницы, но теперь проблема в том, что я не могу получить исходные данные для отображения формы, чтобы отредактируйте его.
Я использовал pbd для отладки, снимок экрана выглядит как удар:
-> def edit(request, title):
(Pdb) print(title)
*** NameError: name 'title' is not defined
(Pdb) next
-> def create(request):
(Pdb) next
--Return--
> <frozen importlib._bootstrap>(219)_call_with_frames_removed()->None
(Pdb)
Он действительно работал раньше ... и он должен иметь переменную заголовка, как указано в моем html файле. Пожалуйста помоги. Большое спасибо!