Связь с базой данных Django - Ошибка типа: объект ManyToOneRel не повторяется - PullRequest
0 голосов
/ 25 мая 2018

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

enter image description here

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 Ответ

0 голосов
/ 25 мая 2018

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

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

for a in questoes.alternativas_set.all():
...