Django 2.1-检查答案是否正确并返回反馈

时间:2019-03-06 19:09:29

标签: python django

我正在尝试开发类似测验的系统。我有一个这样的模型:

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 "Responder" button. I'm not allowed to embed images yet.

我的观点:

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)

基本上,我只是在视图中这样做。这是为了显示问题及其替代方案。我不知道如何从按钮获取请求并在屏幕上返回反馈。

0 个答案:

没有答案