【问题标题】:Django Up/Down Voting how to make template?Django Up/Down Voting 如何制作模板?
【发布时间】:2013-11-28 21:35:50
【问题描述】:

这里是 Django 菜鸟。我已安装 updown package 并按照说明将其添加到我的 UserPic 模型中。以下是相关部分:

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))

照片.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> 

不幸的是,文档不是万无一失的,因此感谢您为实施该应用程序提供的帮助。

【问题讨论】:

  • 您也可以添加视图吗?
  • 它显示Rating &lt;updown.fields.RatingManager object at 0x7f5c64404990&gt;,因为它不是整数字段。如果这是你所期待的。
  • 那么如何让数字出现?这实际上是我的问题之一。
  • 对不起,我不知道这个应用程序。但是您可以使用boolean fieldinteger field。或者更好,你可以试试this

标签: django voting


【解决方案1】:

看起来它看起来不像 django-updown 甚至公开“总”评级,只有赞成票和反对票的数量。您可以通过以下方式获得这些:

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

【讨论】:

  • 您只需要发布到“/vote/1”和“/vote/-1”的按钮
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-06
  • 2011-02-09
  • 1970-01-01
  • 2014-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多