如何使用 Django 模板在 HTML 的表单操作中提交 POST 请求到 '"current_url"/submit'?

How to submit POST request to '"current_url"/submit' in HTML's form action using Django templates?

假设我有很多 post,每个 post 都有一个 url example.com/post_id。在 post 之后还有一个 HTML 表单,可以在其中提交评论。如果我必须向 url: example.com/submit 提交此评论,那么我可以只做 <form action="submit/" method="post">。但是,我希望将此评论提交给此 url:example.com/post_id/submit 以便在调用它的视图时,该视图 可以访问 post_id .这样我就可以将输入的评论与 post_id 一起存储在数据库中。 (我可以通过 request.path_info 访问请求 url。)

一种方法是在模板的 HTML 表单操作中传递 {{request.path}} 与 "submit" 连接。但我不能那样做。一个人可以做到 {{value|add:"submit"}}。但是如何用 {{request.path}} 代替值呢?

tl;dr 使用 django 模板,如何将 post_id/submit url 传递给 HTML 表单操作。 (这里当前url是example.com/post_id。)

尝试 parse/modify 现有的 URL 是个坏主意。但没有理由这样做。您的模板大概已经可以访问 post 本身,因此您应该使用它通过正常的 {% url %} 标签构建 URL。

<form action="{% url "submit_comment" post_id=post.id %}" method="POST">

假设 post 作为 post 传递给模板,并且有一个如下所示的 urlconf:

url(r'(?P<post_id>\d+)/submit/$', views.submit_comment, name='submit_comment'),