Ответ на Popover Bootstrap 4 после отправки POST на Django - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть эта часть представления:

class Perguntas(FormView):

    form_class = QuestaoForm
    template_name = 'certificacoes/pergunta.html'
    template_name_result = 'certificacoes/finalizado.html'

    def dispatch(self, request, *args, **kwargs):
        self.certificado = get_object_or_404(Certificado, slug=self.kwargs['slug_certificado'])

        try:
            self.user_logado = self.request.user.is_authenticated()
        except TypeError:
            self.user_logado = self.request.user.is_authenticated

        if self.user_logado:
            self.sessao = Sessao.objects.usuario_sessao(request.user, self.certificado)

        return super(Perguntas, self).dispatch(request, *args, **kwargs)

    def get_form(self, *args, **kwargs):
        if self.user_logado:
            self.questao = self.sessao.pegar_primeira_questao()

        form_class = self.form_class

        return form_class(**self.get_form_kwargs())

    def get_form_kwargs(self):
        kwargs = super(Perguntas, self).get_form_kwargs()
        return dict(kwargs, questao=self.questao)

    def form_valid(self, form):
        if self.user_logado:
            self.form_valid_usuario(form)
            if self.sessao.pegar_primeira_questao() is False:
                return self.resultado_final_usuario()

        self.request.POST = {}

        return super(Perguntas, self).get(self, self.request)

    def form_valid_usuario(self, form):
        hipotese = form.cleaned_data['respostas']
        is_correta = self.questao.checar_correta(hipotese)

        if is_correta is True:
            pass
        else:
            self.sessao.add_incorreta(self.questao)

        self.sessao.add_usuario_resposta(self.questao, hipotese)
        self.sessao.remover_primeira_questao()

    def get_context_data(self, **kwargs):
        context = super(Perguntas, self).get_context_data(**kwargs)
        context['questao'] = self.questao
        context['certificado'] = self.certificado
        return context

    def resultado_final_usuario(self):
        resultado = {
            'certificado': self.certificado,
            'sessao': self.sessao,
        }

        self.sessao.marcar_certificado_completo()
        self.sessao.delete()

        return render(self.request, self.template_name_result, resultado)

После того, как один вопрос правильный, я хотел бы отправить правильный ответ на ту же страницу, где находятся вопросы.А затем продолжите шаги, которые происходят после этой проверки.

if is_correta is True:
                pass
            else:
                self.sessao.add_incorreta(self.questao)

            self.sessao.add_usuario_resposta(self.questao, hipotese)
            self.sessao.remover_primeira_questao()

Мой шаблон выглядит следующим образом:

{% extends "core/base.html" %}

{% load static %}

{% block content %}

{% if questao %}

 <div class="container mt-5">
    <div class="card">
        <div class="card-header">
          Questão
        </div>
        <div class="card-body">
            <h5 class="card-title">{{ questao.situacao.enunciado|linebreaks }}</h5>
            <p class="card-text">{{ questao|linebreaks }}</p>
            <form class="form" method="POST">
              {% csrf_token %}
              {{ form.as_p }}
              <div class="form-group">
                <button type="submit" class="btn btn-primary" data-toggle="popover" title="Popover title" data-content="{{ Where I would like to receive the variable with the answer. }}">Responder</button>
              </div>
            </form>
        </div>
      </div>
</div>

{% endif %}

{% endblock %}

В основном я хотел бы показать ответ там на поповере и просто переместитьна следующий вопрос, если пользователь дает «ОК» в Popover.Благодаря.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...