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

时间:2015-05-06 11:28:28

标签: django django-templates django-views html-form

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

一种方法是将{{request.path}}与&#34;提交&#34;联合起来。在模板中的HTML表单操作中。但我无法做到这一点。可以做{{value|add:"submit"}}。但是如何将{{request.path}}代替价值?

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

1 个答案:

答案 0 :(得分:1)

尝试解析/修改现有URL是个坏主意。但是没有理由。您的模板可能已经可以访问帖子本身,因此您应该使用此模板通过普通{% url %}标记构建网址。

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

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

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