Проект Wiki Поиск - Создание новой страницы - Моя ссылка на главный экран работает нормально, но моя новая страница не сохраняется в каталоге
Новая страница: Нажатие на кнопку "Создать новую страницу" в боковой панели должно привести пользователя на страницу, где он может создать новую запись в энциклопедии.
1.Пользователи должны иметь возможность ввести заголовок страницы и в текстовой области ввести содержимое страницы в формате Markdown. Пользователи должны иметь возможность нажать кнопку, чтобы сохранить новую страницу.
2.При сохранении страницы, если уже существует запись в энциклопедии с указанным названием, пользователю должно быть представлено сообщение об ошибке.
3.В противном случае запись энциклопедии должна быть сохранена на диске, а пользователь должен перейти на страницу новой записи.
Итак, я работаю над проектом Django и понимаю, что Django мне не нравится. В настоящее время мой Wiki сайт работает так, как я хочу, но я застрял на том, как "Создать новую страницу". Моя ссылка на главном экране работает нормально > > > > Переводит меня на новую страницу, которую я могу создать. Проблема в том, что когда я пытаюсь сохранить страницу, моя страница перенаправляется обратно на исходную страницу без содержимого. Как мне изменить мой код, чтобы он сохранял новую страницу, а не перенаправлял меня обратно на исходную страницу.
Views.py
class CreateForm(forms.Form):
title = forms.CharField(label="Wiki Title")
entry = forms.CharField(label="Wiki Entry", widget=forms.Textarea)
def new(request):
if request.method == "GET":
return render(
request, "encyclopedia/new.html", {"form": CreateForm()}
)
form = CreateForm(request.POST)
if form.is_valid():
title = form.cleaned_data.get("title")
content = form.cleaned_data.get("content")
if title.lower() in [entry.lower() for entry in util.list_entries()]:
messages.add_message(
request,
messages.WARNING,
message=f'Title "{title}" already exists',
)
else:
with open(f"entries/{title}.md", "w") as file:
file.write(content)
return redirect("wiki", title)
else:
messages.add_message(
request, messages.WARNING, message="Invalid request form"
)
return render(
request,
"encyclopedia/new.html",
{"form": form},
)
urls.py
app_name = "encyclopedia"
urlpatterns = [
path("", views.index, name="index"),
path("wiki/<str:title>", views.title, name="title"),
path("search/", views.search, name="search"),
path("new", views.new, name="new"),
path("edit/<str:title>", views.edit, name="edit"),
path("random/", views.random, name="random"),
]
new.html
{% extends "encyclopedia/layout.html" %}
{% block title %}
Encyclopedia - New Page
{% endblock %}
{% block body %}
<form action="{% url 'new' %}" method="POST" class="editor-form" >
<h1>Create a New Page w/ Markdown</h1>
{% csrf_token %}
<textarea name="content" id="content"></textarea>
<div class="row page-editor-footer">
<input type="text" name="title" placeholder="Page Title">
<input type="submit" name="submit" value="Save page">
</div>
</form>
{% endblock %}