Django Python - 使用预填充表单创建登陆页面

Django Python - Creating a landing page with a prepopulated form

我正在为 CS50 的网络课程开发一个项目,用户可以在其中访问维基百科模型并编辑条目。

现在我很难正确加载条目的编辑页面。现在我似乎无法从条目页面上的编辑按钮获得 'entry' 标题,以便页面加载条目 title/content。当前的实现抛出这个错误

"Reverse for 'edit_landing' with arguments '('title',)' not found. 1 pattern(s) tried: ['edit_landing$']"

我试过将“title”换成“entry”,甚至声明“entry = entry”或“entry = title”,但似乎没有任何效果。我对 Django 如何在 URL 中传递变量仍然感到困惑。

我已经尝试了大约 4 或 5 次实施,但我完全不知道如何去做。现在分离编辑登陆和编辑功能似乎可行。

如有任何帮助,我们将不胜感激。非常感谢!

到目前为止,这是我的代码:

views.py:

   def edit_landing_page(request, entry):
    edit = EditEntryForm({'content':(util.get_entry(entry))})
    return render(request, "encyclopedia/edit.html", {
        {"edit":edit}
    })

def edit(request, entry):
    if request.method == "POST":
        util.save_entry(entry)
        return redirect('wiki'+entry)
    else:
        content = util.get_entry(entry)
        return render(request, "encyclopedia/edit.html", {
            "title": entry,
        })

urls.py:

  urlpatterns = [
    path("", views.index, name="index"),
    path("wiki/<str:entry>", views.entry_page, name="entry"),
    path("edit_landing",views.edit_landing_page, name="edit_landing"),
    path("wiki/<str:title>", views.edit, name="edit"),
    path("search", views.search, name="search"),
    path("random", views.random_page, name="random"),
    path("create_landing",views.create_landing_page, name="create_landing"),
    path("create_entry",views.create_entry, name="create_entry")
    ]

我的条目html:

{% extends "encyclopedia/layout.html" %}
{% block title %}
{{title}}
{% endblock %}
{% block body %}
{{ entry|safe }}
<a role-"button" class="btn btn-primary" href="{% url 'encyclopedia:edit_landing' entry%}" method="POST">Edit</a>
{% endblock %}

我的编辑页面html:

{% extends "encyclopedia/layout.html"%}
{% load crispy_forms_tags%}
{% block title%} Edit Entry {%endblock%}
{% block body %}
<h1>Edit Entry</h1>
<form action= "{% url 'encyclopedia:edit'%}" method="POST">
{% csrf_token %}
<div class="form-group">
{{ form | crispy | safe }}
</div>
<input class="btn btn-primary" type="submit" value="Submit">
</form>
{% endblock %}

您的 URL 模式没有为 edit_landing 定义参数,例如“edit”。因此反向不起作用。