[Python] Inserir Alternativas em um Model no Django

Discussão em 'Python' iniciado por Stack, Novembro 20, 2024.

  1. Stack

    Stack Membro Participativo

    Boa noite. Eu sou iniciante no Django, estou tentando fazer uma plataforma simples, tipo um quiz e estou com uma dúvida. Eu tenho a seguinte classe:

    class Questao(models.Model):
    subdominio = models.ManyToManyField(SubDominio)
    situacao = models.OneToOneField(Situacao, on_delete=models.CASCADE)
    questao = models.TextField()

    def __str__(self):
    return self.questao

    class Meta:
    verbose_name = "Questão"
    verbose_name_plural = "Questões"
    ordering = ['subdominio__name']


    Onde Questão é relacionada com Situação:

    class Situacao(models.Model):
    enunciado = models.TextField()
    certificado = models.ManyToManyField(Certificado)

    def __str__(self):
    return '{}...'.format(self.enunciado[:80])

    class Meta:
    verbose_name = "Situação"
    verbose_name_plural = "Situações"


    E a variável certificado que é uma relação n pra n é basicamente como se fosse uma certa categoria do Quiz. Enfim, eu gostaria de adicionar no Model Questão várias alternativas: letra a, b, c, etc (sendo que isso eu já adicionaria por exemplo um booleano, indicando qual delas seria a correta). Como eu poderia fazer isso e adicionar as alternativas pela categoria Questão diretamente no Django Admin?

    O que eu tinha feito antes era basicamente isso aqui:

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

    def __str__(self):
    return self.resposta

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


    Porém eu sempre tinha que adicionar uma certa alternativa e relacionar com a questão que eu tinha criado, e eu queria algo mais direto ao adicionar a questão mesmo.

    Obrigado por qualquer ajuda e caso não tenha sido claro eu tento editar a questão.

    --- Editado

    Gostaria que ficasse algo parecido com isso:

    [​IMG]

    Teria algo como adicionar essa questão, e eu poderia colocar A, B, C, D ou 1, 2, 3,4 sei lá, aí quando eu selecionasse isso eu adicionaria as opções das alternativas, qual seria marcado como correta e qual não. Entende? Assim eu não teria que adicionar as alternativas uma por uma e fazer uma ligação com a questão no painel.

    Continue reading...

Compartilhe esta Página