我正在尝试开发类似测验的系统。我有一个这样的模型:
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类)时,我希望这样做。我该怎么办?谢谢!
我的观点:
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)
基本上,我只是在视图中这样做。这是为了显示问题及其替代方案。我不知道如何从按钮获取请求并在屏幕上返回反馈。