Связь с базой данных Django - Ошибка типа: объект ManyToOneRel не повторяется

Я 3 дня пытаюсь установить связь Один-ко-многим с базой данных, используя таблицу "Alternativas" через resposta таблицы "Questoes". Я хочу создать систему викторин, где вопросы хранятся в таблице в БД, а ответы находятся в другой таблице, и таким образом устанавливаются отношения между ними, но при попытке получить столбец ответа возвращается следующая ошибка Следите за распечаткой.

введите описание изображения здесь

models.py:

class Questoes(models.Model):
    id = models.IntegerField(max_length=10, primary_key=True)
    enunciado = models.CharField(max_length=255, null=False)
    alternativa_correta = models.CharField(max_length=255, null=True)
    resposta = models.ManyToOneRel('resposta', to='Alternativas', 
    field_name='descricao')

class Alternativas(models.Model):
    id = models.IntegerField(max_length=10, primary_key=True)
    questao_id = models.ForeignKey('Questoes', on_delete=CASCADE, 
    db_column="questao_id")
    descricao = models.CharField(max_length=255, null=True)

Views.py:

def dashboard(request):
    if request.method == 'POST':
        questoes = {}
        questoes['questoes'] = Questoes.objects.get(id=1)
        print('=======================================================================')
        print(questoes)
        print('=======================================================================')
        for a in questoes.resposta:
            print(a)
        print('======================================================================')

1 ответ

Решение

ManyToOneRel это не поле. Это внутренний класс, часть реализации отношений, а не то, что вы должны использовать в своих моделях.

У вас уже есть отношения многие-к-одному между этими моделями, потому что вы определили questao_id в альтернативе. Удалите это определение ManyToOneRel и, по вашему мнению, используйте обратное отношение:

for a in questoes.alternativas_set.all():
Другие вопросы по тегам