2013-11-28 14 views
0

Django noob here。我已安装updown package并按照说明将其添加到我的UserPic模型中。以下是相关部分:Django向上/向下投票如何制作模板?

class UserPic(models.Model): 
    user = models.ForeignKey(User, unique=False) 
    picfile = models.FileField(upload_to=get_uplaod_file_name) 
    created_at = models.DateTimeField(auto_now_add=True) 
    rating = RatingField(can_change_vote=True) 

urls.py

urlpatterns = patterns('', 
    url(r"^(?P<object_id>\d+)/rate/(?P<score>[\d\-]+)$", AddRatingFromModel(), { 
      'app_label': 'userpic', 
      'model': 'UserPic', 
      'field_name': 'rating', 
     }, name="pic_rating"), 
    rl(r'^(?P<pic_id>\d+)/$', 'userpics.views.photo'), 
    url(r'^(?P<pic_id>\d+)/delete$', 'userpics.views.del_photo'), 
    url(r'^/$', 'userpics.views.list'), 

views.py

def photo(request, pic_id): 
    if request.method == 'GET': 
     pic = UserPic.objects.get(pk=pic_id) 
     hasNext=False 
     hasPrev=False 
     picOwner=False 

     next = int(pic_id) + 1 
     prev= int(pic_id) - 1 

     if pic.user== request.user: 
      picOwner= True 
     try: 
      if UserPic.objects.get(pk=next): 
       hasNext =True 
     except: 
      pass 
     try: 
      if UserPic.objects.get(pk=prev): 
       hasPrev = True 
     except: 
      pass 

     message = pic_id 
     return render_to_response('userpics/photo.html', 
             {'pic':pic, 'hasNext':hasNext, 'hasPrev':hasPrev, 'picOwner':picOwner}, 
             context_instance=RequestContext(request)) 

photo.html

{% if pic %} 

<form method="post" action="/photo/{{pic.id}}/rate/1" > 
{% csrf_token %} 
<input type="button" value="Up"> 
</form> 

<form method="post" action="/photo/{{pic.id}}/rate/-1" > 
{% csrf_token %} 
<input type="button" value="Down"> 
</form> 

Rating {{pic.rating}} 
<img class="pic" src="/static/assets/{{pic}}" /> 

但是,创建的按钮似乎不起作用。和替代{{pic.rating}}我得到的东西,如:

Rating <updown.fields.RatingManager object at 0x7f5c64404990> 

不幸的是,文件小于防呆所以我感谢你的帮助来实现应用程序。

+0

你能添加视图吗? – Aamu

+0

当然。添加了意见 – hbp

+2

它显示'Rating '因为它不是一个整数字段。如果那就是你的期望。 – Aamu

回答

0

看起来它看起来不像django-updown,甚至暴露出“总”评级,只有upvotes和downvotes的数量。你可以得到这些:

{{ pic.rating.likes }} and {{ pic.rating.dislikes }} 
+0

ok。如何在表单中添加Like和不喜欢按钮? – hbp

+0

您只需要发布到“/vote/1”和“/vote/-1”的按钮 – Thomas

相关问题