I have users, videos, topics, 标准 and ratings
- A video has a topic
- A topic has 标准
- A user可以创建一个video对于给定的topic
- A user可以评价一个video在各个标准为有关人士提供topic.
你可以看我的原帖Django - 评级模型示例 DetailView 模板获取所用型号的详细信息
我已经延长了DetailView
模板基于video模型来放置列表ratings对于所选的video对于给定的user作为额外的上下文。
class VideoFileDetailView(DetailView):
model = VideoFile
def get_context_data(self, **kwargs):
context = super(VideoFileDetailView, self).get_context_data(**kwargs)
context['rates'] = VideoRate.objects.filter(video=self.object, user=self.request.user)
return context
在指向的模板中DetailView
,我想列出标准 of the video,并且对于每个criteria显示当前评级值形成user.
<div id="rating">
<ul>
{% for crit in videofile.topic.crits.all %}
<li>
{% for rate in rates %}
{% if rate.crit.id == crit.id %}
{{ rate.rate }}
{% endif %}
{% endfor %}
<div class="rateit"
data-rateit-value="{# The rating value #}"
data-rateit-ispreset="true"
crit-id="{{ crit.id }}"></div>
{{ crit }}
</li>
{% endfor %}
</ul>
</div>
(rateit是一个jquery插件,我用它来绘制漂亮的星级评级控件)
事实上,我在第二次内得到了我的评级值for
但我确信有更好的方法可以做到这一点。事实上,我仍然不确定我的model正确性。
最后我想更换{# The rating value #}
通过当前暴击率的评级值(在循环中)。我怎样才能做到这一点 ?