Редактирование страницы в Django - PullRequest
0 голосов
/ 12 июля 2020

Я новичок в python и django (как вы, наверное, догадались).

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

Мы еще не работаем с базами данных или сеансами. Запись - это в основном заголовок + контент на любом топе c.

form.py:

from django import forms

class NewEntryForm(forms.Form):
    title = forms.CharField(label="Title", required=True, max_length=100)
    content = forms.CharField(label="Content", widget=forms.Textarea, required=True, max_length=1000)

views.py, где он не работает:

def edit_entry(request, title):
    try:
        content = util.get_entry(title)  #store content of the entry
    except:
        return HttpResponseNotFound("Page not found")

    form = NewEntryForm()
    form.content = content 

    return render(request, "encyclopedia/new_entry.html", {
        "form": form,  #to create the displayed form
        "form.content": form.content, "form.title": title,  #to fill the form with the stored info
        "title": title.capitalize(), "messages": None,  #page title & warning messages
    })    

тот же шаблон для создания и редактирования записи:

{% extends "encyclopedia/layout.html" %}

{% block title %}
    {{ title }}
{% endblock %}

{% block body %}

{% if messages %}
<div class="alert alert-warning" role="alert">
    {{ messages }}
</div>
{% endif %}

<div class="content-section" style=" margin: auto; width: 50%; padding: 10px;">
    <form method="POST" action="{% url 'edit_entry' title%}">
        {% csrf_token %}
        {{ form.title.label }}
        {{ form.title }}
        {{ form.content.label}}
        {{ form.content }}
        <input type="submit" value="Submit">
    </form>
</div>

{% endblock %} 

util.py:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...