我无法通过django-voting注册投票来登记投票:https://github.com/brosner/django-voting
我正试图在技术上推荐评论对象。因此增加了它的分数。
这是我到目前为止所做的:
模板:
<form method="POST" action="/comments/{{ comment.id }}/up/vote/">
{% csrf_token %}
<button type="submit">Thumbs up!</button>
</form>
网址
widget_dict = {
'model': Comment,
'template_object_name': 'comment',
'allow_xmlhttprequest': True,
}
#users can comment on event objects, And VOTE on comments
urlpatterns = patterns('',
url(r'^$', 'event.views.index'),
url(r'^(?P<id>\d+)/$', 'event.views.detail'),
url(r'^comments/(?P<object_id>\d+)/(?P<direction>up|down|clear)/vote/?$', vote_on_object, widget_dict),
)
有了这个,我被引导到404。
docs 举例说明:
from django.conf.urls.defaults import *
from voting.views import vote_on_object
from shop.apps.products.models import Widget
widget_dict = {
'model': Widget,
'template_object_name': 'widget',
'allow_xmlhttprequest': True,
}
urlpatterns = patterns('',
(r'^widgets/(?P<object_id>\d+)/(?P<direction>up|down|clear)vote/?$', vote_on_object, widget_dict),
)
另外,我无法通过管理员添加投票?
我不知道widget_dict到底是什么。我只是想将表单发布到vote_on_object
。有没有人成功发表投票?如果是这样,我做错了什么?感谢您的帮助。
答案 0 :(得分:1)
我认为你有一个错字,你忘了'/'
表单中的网址应为'/widgets/{{ comment.id }}/up/vote/'
或者模式应该以{{1}}
然后是模式,你忘了斜线:
comments
应该是
(?P<direction>up|down|clear)vote/?$
如果要检查路由,可以从shell
进行(?P<direction>up|down|clear)/vote/?$
看到它有效