【问题标题】:'ManyToManyDescriptor' object has no attribute 'add' in Django with PostgreSQL'ManyToManyDescriptor' 对象在带有 PostgreSQL 的 Django 中没有属性 'add'
【发布时间】:2021-11-14 15:03:05
【问题描述】:

我正在尝试在我的数据库中存储一些数据,其中 2 个不同的模型通过“多对多”字段相互引用。

我的models.py:

class CorrectAns(models.Model):
    ansId = models.IntegerField(primary_key=True)
    responseText1 = models.TextField(null=True, blank=True)
    isDeleted = models.BooleanField(default=False)
    questionRef = models.ManyToManyField('Questions')

class Questions(models.Model):
    questionId = models.IntegerField(primary_key=True)
    groupId = models.IntegerField(default=0)
    questionTitle = models.TextField()
    correctAnsRef = models.ManyToManyField(CorrectAns, related_name="questionReletedResponses")

我的views.py:

for i in QuestionsList:
        questionObj = Questions(
            questionId = i['Id'],
            groupId = i['GroupId'],
            questionTitle = i['QuestionTitle'],
        )
        questionObj.save()
        for j in i['Responses']:
                correctAnsObj = CorrectAns.objects.create(
                    ansId = j['Id'],
                    responseText1 = myResponseText1,
                    isDeleted = j['IsDeleted'],
                )
                correctAnsObj.questionRef.add(questionObj)
                correctAnsObj.save()
                Questions.correctAnsRef.add(correctAnsObj)
    return

现在它显示错误行:

Questions.correctAnsRef.add(correctAnsObj)

喜欢:

'ManyToManyDescriptor' object has no attribute 'add'

请建议我该如何解决这个问题?

【问题讨论】:

    标签: python django postgresql


    【解决方案1】:

    您应该将它添加到questionObj,所以是Questions 对象,而不是Questions 类:

    <strong>questionObj</strong>.correctAnsRef.add(correctAnsObj)

    注意:通常 Django 模型被赋予一个单数名称,所以Question而不是Questions

    【讨论】:

      猜你喜欢
      • 2017-06-16
      • 2019-01-11
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 2017-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多