为什么django-star-ratings在模板加载时不显示星星?

时间:2018-09-13 12:05:19

标签: python django django-templates

我已将django-star-rating添加到我的应用程序中,但模板未显示星星。我已在models.py的AlbumImage类中添加了一个rating字段,并尝试遍历图像(照片)列表,但星级不会出现。我没有编辑views.py。

models.py:

class AlbumImage(models.Model):
    image = ProcessedImageField(upload_to='albums', processors=[ResizeToFit(1280)], format='JPEG', options={'quality': 70})
    thumb = ProcessedImageField(upload_to='albums', processors=[ResizeToFit(300)], format='JPEG', options={'quality': 80})
    album = models.ForeignKey('album', on_delete=models.PROTECT)
    alt = models.CharField(max_length=255, default=uuid.uuid4)
    created = models.DateTimeField(auto_now_add=True)
    width = models.IntegerField(default=0)
    height = models.IntegerField(default=0)
    slug = models.SlugField(max_length=70, default=uuid.uuid4, editable=False)
    ratings = GenericRelation(Rating, related_query_name='object_list')

    def __unicode__(self):
        return self.ratings

views.py:

class AlbumDetail(DetailView):
    model = Album

    def get_context_data(self, **kwargs):
        # Call the base implementation first to get a context
        context = super(AlbumDetail, self).get_context_data(**kwargs)
        # Add in a QuerySet of all the images
        context['images'] = AlbumImage.objects.filter(album=self.object.id)

        return context

模板:

{% load ratings %}
    {% for item in object_list %}
       {{item.image}} and {{item.ratings}}
    {% endfor %}

1 个答案:

答案 0 :(得分:0)

编辑:以上所有方法均无效,祝其他答复者好运!


基于自述文件中的usage,我认为您应该使用其自定义标签{% ratings <object> %},并且需要确保自己已经拥有或当前模板的CSS和JS脚本,如下所示:

还需要遍历“ images”变量:

模板

基本html:

{% load static %}
<html>
...
<head>
<link rel="stylesheet" href="{% static 'star-ratings/css/star-ratings.css' %}">
<script type="text/javascript" src="{% static 'star-ratings/js/dist/star-ratings.min.js' %}"></script>
...
</head>
...
</html>

当前html:

{% load ratings %}

{% for image in images %}
    {% ratings image %}
{% endfor %}