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