'ManyToManyDescriptor'对象在 Django 中使用 PostgreSQL 时没有属性'add'



我正试图在数据库中存储一些数据,其中两个不同的模型用"多对多"字段相互引用。

我的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'

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

您应该将其添加到questionObj,因此Questions对象,而不是Questions类:

questionObj.correctAnsRef.add(correctAnsObj)

注意:通常Django模型被赋予单数名称,因此Question而不是Questions

最新更新