我已将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 %}
答案 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 %}