bugfix> python > 投稿

テーブル「Questoes」のレスポスタを介して、テーブル「Alternativas」を使用して、データベースと1対多の関係を確立しようとしています。クイズシステムを作成します。質問はDBのテーブルに保存され、回答は別のテーブルにあり、この方法で関係を作成しますが、応答列をプルしようとすると次のエラーが返されます、印刷物に従ってください。

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 を定義したため、これらのモデル間にはすでに多対1の関係があります。  Alternativasで。そのManyToOneRel定義を削除し、ビューで逆の関係を使用します。

    for a in questoes.alternativas_set.all():
    
    

あなたの答え