У меня пользователей , видео , тем , критериев и оценок
- A видео имеет тему
- A тему имеет критерии
- A пользователь может создать видео для данной темы
- A пользователь может оценить видео по каждому критериям , указанным для соответствующей темы .
Вы можете увидеть мое оригинальное сообщение Django - пример модели оценки DetailView Template toполучить подробную информацию об используемой модели
Я расширил шаблон DetailView
на основе модели video , чтобы поместить список оценок для выбранного видео для данного пользователя в качестве дополнительного контекста.
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
, я хотел бы перечислить критерии видео , и для каждого критерия отображается текущий raзначение от пользователя .
<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
, но я уверен, что есть лучший способ сделать это.На самом деле, я до сих пор не уверен в правильности моей модели .
Наконец, я бы хотел заменить {# The rating value #}
на значение рейтинга от оценки для текущего крит (в цикле).Как я могу это сделать?