我有用戶,視頻,主題,指標分析和評級Django的 - 簡單的自定義模板標記示例
- 一個視頻有話題
- 一主題有標準
- 一個用戶可以創建一個視頻對於給定話題
- 一個用戶可以對有關話題給每個指標分析率視頻。
你可以看到我原來的職位Django - Rating Model Example DetailView Template得到的模型細節時,使用
我已經擴展基礎上,視頻模型DetailView
模板把評級選定視頻列表對於給定的用戶作爲額外的上下文。
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
指向的模板,我想列出審覈規定的視頻的,並且對於每個標準顯示當前評級值形式用戶。
<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 #}
。我怎樣才能做到這一點 ?
有什麼問題嗎? –
如果您在您的模型中添加了助手屬性,可以簡化您的模板代碼,例如循環速率。 –
其實,它可能是最好的模板標籤。傳入'rates'和'crit',返回'rates.filter(暴擊=暴擊)' –