我正在使用Django 1.9制作一个博客,我在网站上实施一个upvote系统时遇到了问题。
<form action="{% url 'blogapp:vote_handler' id=instance.get_id %}" method="POST" id="upvote_form_post">
{% csrf_token %}
<input type="hidden" name="user" value="{{request.user}}">
<input type="hidden" name="content_type_upvote" value="{{ instance.get_content_type }}">
<input type="hidden" name="object_id_upvote" value="{{ instance.get_id }}">
<button type="submit" class="icon fa-heart button-link" name="upvote_form_post" value="Submit">  {{ instance.vote_count }}</button>
</form>
此表单一直给我带来问题,特别是带有网址的action属性。
我的网址文件:
urlpatterns = [
# url(r'^$', views.IndexView.as_view(), name='list'),
url(r'^$', post_list, name='list'),
url(r'^create/$', post_create),
url(r'^(?P<slug>[\w-]+)/$', views.post_detail, name='detail'),
url(r'^(?P<slug>[\w-]+)/delete/$', views.DeleteView.as_view()),
url(r'^(?P<slug>[\w-]+)/edit/$', views.UpdateView.as_view(), name='edit'),
url(r'^vote/(?P<id>[0-9]+)/$', views.vote_handler, name='vote_handler'),
我不知道为什么这不起作用。当我按如下方式对网址进行硬编码时,它工作正常:
<form action="/vote/{{instance.id}}/" method="POST" id="upvote_form_post">
我完全不知道为什么instance.id或instance.get_id正在评估一个空字符串。有没有人对此有任何想法?