jeder!
Ich habe ein Problem, während ich die Funktion jinja2 url_for () verwendete.
Ich habe eine Route wie:
@app.route("/article/<int:article_id>/<url_title>/", methods=["GET"])
def article_page(article_id, url_title):
article = Article.query.get(article_id)
if article == None:
abort(404)
return render_template("article.html", article=article)
In der Jinja-Vorlagendatei möchte ich eine URL erstellen, die auf article_page verweist. Ich schreibe also so:
<h5><a href="{{ url_for("article_page",article_id=article.id,url_title=article.url_title) }}">{{ article.title }}</a></h5>
aber wenn ich diese Seite starte, bekomme ich eine Fehlermeldung
raise BuildError(endpoint, values, method)
BuildError: ("article_page", {"article_id": 1}, None)
scheint der zweite Parameter "url_title" fehlt. Wie kann ich url_for () mit mehreren Parametern korrekt verwenden? Vielen Dank an alle!
Antworten:
6 für die Antwort № 1Gemäß url_for
Dokumentation:
Wenn der Wert eines Abfragearguments "Keine" ist, wird das gesamte Paar übersprungen.
Stelle sicher das url_title
ist nicht None
.
Oder geben Sie den Standardwert für an url_title
in dem article_page
Funktion.
0 für die Antwort № 2
Sie haben einen Punkt verpasst, versuchen Sie das:
url_for(".article_page", article_id=article.id, url_title=article.url_title)