Как автоинкрементировать значения чекбокса с помощью jinja2 (Django) со сбросом

Мне нужно автоматически увеличивать значение в моем флажке и сбрасывать значение, когда я создаю новый массив флажка

forloop.count dont reset
{% for ans in Answ %}

    {% if ans.question_id_id == Questions.id %}
        <input type="hidden" value="{{ Questions.id }}" name="id">
       <div class="form-check" ><label><input type="checkbox" value="{{ ans.id }}" name="answer"> {{ ans.answer }} </label></div>
    {% endif %}

{% endfor %}

views.py

class AnswerQuestionView (LoginRequiredMixin, DetailView):
login_url = '/login'
redirect_field_name = 'redirect_to'
model = Question
template_name = 'index.html'
context_object_name = 'Questions'
slug_field = 'pk'

def get_context_data(self, **kwargs):
    context = super(AnswerQuestionView, self).get_context_data(**kwargs)
    context['user_group'] = self.request.user.groups.values_list()[0][1]
    context['Answ'] = QuestAnswer.objects.all()

    return context

Это одна из многих причин, по которым следует не делать фильтрацию в шаблоне. Другой очень важной причиной является производительность: по мере роста количества ответов, рендеринг шаблона будет занимать много времени.

Вы можете фильтровать в представлении с помощью:

class AnswerQuestionView(LoginRequiredMixin, DetailView):
    login_url = '/login'
    redirect_field_name = 'redirect_to'
    model = Question
    template_name = 'index.html'
    context_object_name = 'question'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['user_group'] = self.request.user.groups.values_list()[0][1]
        context['answers'] = QuestAnswer.objects.filter(question_id=self.object)
        return context

Вероятно, вы даже можете использовать связанное имя:

class AnswerQuestionView(LoginRequiredMixin, DetailView):
    login_url = '/login'
    redirect_field_name = 'redirect_to'
    model = Question
    template_name = 'index.html'
    context_object_name = 'question'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['user_group'] = self.request.user.groups.values_list()[0][1]
        context['answers'] = self.object.questionanswer_set.all()
        return context

Примечание: Обычно не добавляют суффикс …_id к полю ForeignKey, так как Django автоматически добавит поле-"близнец" с суффиксом …_id. Поэтому он должен быть question, вместо question_id.

.
Вернуться на верх