HttpResponseRedirect не будет перенаправлять страницу редактирования на другую страницу, которая отображает результат редактирования на Django - PullRequest
0 голосов
/ 03 августа 2020

Он возвращает только страницу редактирования без перенаправления на страницу результатов (заголовок. 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 файле. Пожалуйста помоги. Большое спасибо!

...