Django-jinja语法帮助-如何将{{title}}的值传递到href-url参数中



所以我有这个html:

{% extends "encyclopedia/layout.html" %}
{% block title %}
{{ title }}
{% endblock %}
{% block body %}
<h1>{{ title }}</h1>
{% autoescape off %}
<p>{{ entry|safe }}</p>
{% endautoescape%}
<br>
<a href="{% url 'edit' 'cat' %}"><button type="button" name="button">Edit</button></a>
{% endblock %}

我希望url"edit"也能获得{{title}}的值,而不是"cat"。。我只是用这个值来测试其余的代码,但我不想那样硬编码。。。

这是我的网址.py:

urlpatterns = [
path("", views.index, name="index"),
path("<str:title>", views.title, name="title"),
path("edit/<str:title>", views.edit, name="edit"),
path("error/", views.error, name="error"),
path("new/", views.new, name="new"),
]

这是views.py:中的代码

def title(request, title):
entry = util.get_entry(title)
if entry == None:
return redirect("error")
entry_html = md.convert(entry)
return render(request, "encyclopedia/title.html", {
"entry": entry_html
})

def edit(request, title):
if request.method == "POST":
# get the changes from the user
form = EditEntryForm(request.POST)
if form.is_valid():
content = form.cleaned_data["content"]
# save the entry and redirect to the updated page
util.save_entry(title, content)
return redirect("title", title=title)
else:
redirect("edit", title=title)
entry = util.get_entry(title)
form = EditEntryForm(initial={'content': entry})
return render(request, "encyclopedia/edit.html", {
"form": form
})

正如我所说,如果我对标题的值进行硬编码,代码就会按预期工作。。。。如何在href url中获取{{title}}?

您应该能够将其作为:传入

{% url 'edit' title %}

…或者您可能需要指定参数名称:

{% url 'edit' title=title %}

有关详细信息,请参阅文档中的此链接。

最新更新