【发布时间】:2017-12-24 12:38:58
【问题描述】:
我目前有以下3个型号
class modelToolName(models.Model):
tool_name = models.CharField(max_length=250,unique=True)
class modelBodyPart(models.Model):
part_name = models.CharField(max_length=128,unique=True)
class modelNormalBodyPartResult(models.Model):
body_part = models.ForeignKey(modelBodyPart, default=None)
tool_name = models.ManyToManyField(modelToolName, default=None, blank=True)
result = models.TextField(blank=True, null=True)
现在我正在尝试以这种方式将值插入modelNormalBodyPartResult
result="xxxx"
bodpart = modelBodyPart.objects.get(part_name="xxx") #--->returns object fine
toolqset = modelToolName.objects.get(tool_name="xxx")#--->returns object fine
modelNormalBodyPartResult.objects.create(body_part=bodpart,tool_name = toolqset,result=result) --->error
我得到了错误
<modelNormalBodyPartResult: modelNormalBodyPartResult object> needs to have a value for field "modelnormalbodypartresult" before this many-to-many relationship can be used.
我查看了this 的帖子,但仍然无法弄清楚问题所在,任何有关这方面的建议将不胜感激。
【问题讨论】:
-
你在插入值时定义了modelNormalBodyPartResult的新obj吗?
-
不,我总是像这样创建一个新对象 modelobject.objects.create(...)
-
您确定要在那里进行多对多吗?
-
@DanielRoseman 是的,原因是
modelToolName的一个实例可以与多个modelNormalBodyPartResult关联,同时modelNormalBodyPartResult可以有多个与modelToolName实例关联的条目跨度>
标签: django many-to-many django-orm