Django 2.1 - Проверьте правильность ответа и отправьте отзыв - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь разработать систему, подобную викторине.У меня есть модель, подобная этой:

from django.db import models
from questoes.models import Questao

class MCQuestao(Questao):

    def checar_correta(self, ans):
        answer = Alternativa.objects.get(id=ans)

        if answer.correta is True:
            return True
        else:
            return False

    class Meta:
        verbose_name = 'Questão múltipla escolha'
        verbose_name_plural = 'Questões múltiplas escolhas'

class Alternativa(models.Model):
    questao = models.ForeignKey(MCQuestao, on_delete=models.CASCADE)
    resposta = models.TextField()
    fundteorico = models.TextField()
    correta = models.BooleanField(default=False)

    def __str__(self):
        return self.resposta

    class Meta:
        verbose_name = "Alternativa"
        verbose_name_plural = "Alternativas"

Мне бы хотелось, чтобы кто-то нажимал кнопку «Ответчик», чтобы вернуть какой-то отзыв на экран (в данном случае, Fundteorico, класс Alternativa).Как бы я это сделал?Спасибо!

Click here to see the view with

Мои взгляды:

from django.shortcuts import render, get_object_or_404, HttpResponse

from . models import Certificacao, Certificado
from questoes . models import Situacao, Questao, Resolucao
from multescolha . models import Alternativa

def pergunta(request, slug, id):
    certificacao = get_object_or_404(Certificacao, slug=slug)
    sit = Situacao.objects.get(certificado__id=id)
    resolucao = Resolucao.objects.get(situacao=sit)
    questao = Questao.objects.get_subclass(resolucao=resolucao)
    alternativa = Alternativa.objects.filter(questao=questao)
    template_name = 'certificacoes/pergunta.html'
    context = {
        'situacao': sit,
        'resolucao': resolucao,
        'alternativa': alternativa,
        'certificacao': certificacao,
    }
    return render(request, template_name, context)

По сути, я просто сделал это в представлении.Который должен был показать вопрос и его альтернативы.Понятия не имею, как получить запрос с кнопки и вернуть отзыв на экран.

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