当前位置: 首页 > 知识库问答 >
问题:

在使用此多对多关系之前,需要为字段XXX设置一个值

霍书
2023-03-14

我目前有以下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.

我看了这篇文章,但仍然无法找出问题所在。对此,如果有任何建议,我将不胜感激。

共有1个答案

丰博
2023-03-14

你必须先创建一个对象,然后向它添加与ManyTo很多相关的对象,

result="xxxx"
bodpart = modelBodyPart.objects.get(part_name="xxx")
toolqset = modelToolName.objects.get(tool_name="xxx")
item = modelNormalBodyPartResult.objects.create(body_part=bodpart,result=result)
item.tool_name.add(toolqset)
item.save()
 类似资料:
  • 我正在做一个像电子商务网站这样的项目。到目前为止,一切正常,但如果用户购物车/包中没有任何内容,则会发生错误。我试过保存方法,但我想我做错了什么。有人能帮我解决吗 views.py 模型。派克 错误和回溯 先谢谢你。

  • 保存表单时,我遇到以下错误:“”需要为字段“surveythread”设置一个值,然后才能使用此多对多关系。 模型。py: views.py: forms.py 错误消息: 回溯: 我是Django和Python的新手。如果需要,我可以发布调试跟踪或迁移文件,但我觉得这是一个简单的修复。显然,关键是我想为每个调查结果保存多个调查线程。 谢谢!

  • 我正在尝试将团队添加到数据库中,但出现此错误。看了类似的问题,但没有一个解决了我的问题。(我是Django的新手) 我的代码看起来像: 形式。派克 模型。派克 意见。派克 当我尝试不使用表单时,例如仅使用标题字段: 它是成功地添加它。我在这里做错了什么?

  • 我的实体之间存在多对多关系:和。当我想在我的Symfony项目中将添加到订单时,我总是收到以下错误消息: 属性“suppliers”在类“Acme\AppBundle\Entity\PurchaseOrder”中不是公共的。也许您应该创建方法“setSuppliers()”? 当我自己在Entity中创建函数时: 我收到以下错误消息: 可捕获的致命错误:传递给Doctrine\通用\集合\Arra

  • 问题内容: 假设我有一个具有两个不同的一对多关系的对象。很像: 和 假设我的对象有两个与这两个对象相关的列表。 我已经阅读了以下示例:http : //forum.springsource.org/showthread.php?50617-rowmapper -with-one-to-many- query,其中说明了如何使用单个一对多关系来执行此操作。为了您的方便,这里是替代: 我认为这并不涉及

  • Car对象只是典型的JPA对象,没有对驱动程序的反向引用。 所以我试图通过这个来实现的是: 我可以使用详细的JSON视图阅读完整的汽车说明 或者我可以只读取汽车的Id,简写为jsonview 最重要的是,在创建新的驱动程序时,我只想传入汽车的JSON ID。这样,我就不需要在persist期间对Car进行不确定的读取,而只需要更新ID。 谢谢你。 更新:忘记了,我在创建驱动程序时通过的汽车的ID是