我正在遵循一个基本教程,该教程向博客文章详细信息页面添加了评论。我正在使用absolute_url方法导航到详细信息页面,它工作得很好。
def get_absolute_url(self):
return reverse('blog:post_detail',
args=[self.publish.year,
self.publish.month,
self.publish.day,
self.slug])
这是由get_absolute_url创建的示例URL
http://localhost:8000/blog/2019/5/2/second-post
但是,当我在详细信息页面中使用action =“。”提交表单时,它仅返回日期参数,并且缺少子句部分。
<form action="." method="post">
{% csrf_token %}
{{ comment_form.as_p }}
<p><input type="submit" value="Add comment"></p>
</form>
这是返回的网址
http://localhost:8000/blog/2019/5/2/
添加action="{{ post.get_absolute_url }}"
似乎可以解决问题,但是我正在关注的书Django 2 By Example
告诉它应该可以与action =“一起正常使用。”
我是Django and Development的新手,非常感谢您的帮助和理解,无论该问题是否是:)
答案 0 :(得分:3)
您没有显示URL模式,但是它们都应以/
结尾。因此,http://localhost:8000/blog/2019/5/2/second-post
的原始URL应该为http://localhost:8000/blog/2019/5/2/second-post/
。例如,模式可能是:
path('blog/<int:year>/<int:month>/<int:day>/<slug:slug>/', views.blog, 'blog'),
以斜杠结尾,因此生成的路径也将以斜杠结尾。然后发布到“。”将正常工作。