Моя функция редактирования создает новую страницу вместо редактирования предыдущей страницы views.py

Я отредактировал свой views.py, но у меня ошибка, каждый раз, когда я редактирую предыдущую запись, он создает новую запись с тем, что я отредактировал, вместо того, чтобы редактировать эту копию. Я пытался исправить возможные ошибки. пожалуйста, помогите

VIEWS.PY

class AddPageForm(forms.Form):
    title = forms.CharField(max_length=20)
    content = forms.CharField(widget=forms.Textarea(
        attrs={
            "class": "form-control",
            "placeholder": "Tell us more!"
        })
    
def edit_page(request, title):
    if request.method == "GET":
        # title = request.GET.get('title')
        content = util.get_entry(title)   
        form = AddPageForm(initial={"content": title})
        return render(request, "encyclopedia/editpage.html", 
        {"form": form})

    else:
        form = AddPageForm(request.POST)
        
        if form.is_valid():
            # title = form.cleaned_data['title']
            content = form.cleaned_data['content']
            util.save_entry(title, content)
            return redirect('encyclopedia:entrypage', title)
    return render(request, 'encyclopedia/editpage.html', {'form': form})


РЕДАКТИРОВАТЬ СТРАНИЦУ

{% block body %}

    <h1>Edit {{ title }}</h1>

    <form action="" method="post">
        {% csrf_token %}
        {% form %}
        <input type="submit" value="Submit" class="btn btn-secondary">
    </form>

СТРАНИЦА ВХОДА

{% block body %}
        {{ content|safe }}

        <a href="{% url 'encyclopedia:editpage' title=title %}" class="btn btn-primary">Update</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")

]

UTILS.PY

def save_entry(title, content):
    """
    Saves an encyclopedia entry, given its title and Markdown
    content. If an existing entry with the same title already exists,
    it is replaced.
    """
    filename = f"entries/{title}.md"
    if default_storage.exists(filename):
        default_storage.delete(filename)
    default_storage.save(filename, ContentFile(content))


def get_entry(title):
    """
    Retrieves an encyclopedia entry by its title. If no such
    entry exists, the function returns None.
    """
    try:
        f = default_storage.open(f"entries/{title}.md")
        return f.read().decode("utf-8")
    except FileNotFoundError:
        return None

Я использую forms.Form, потому что это задание, и требование гласит, что мы должны использовать его вместо forms.Model

Вернуться на верх