Django ValueError:“值错误”&书信电报;模型对象>&引用;“字段”需要有一个值;Mrefs";在此之前,可以使用多对多关系

Django ValueError:“值错误”&书信电报;模型对象>&引用;“字段”需要有一个值;Mrefs";在此之前,可以使用多对多关系,django,Django,我在尝试添加多对多关系时遇到以下错误。只有在尝试添加多对多字段时,才会发生错误。同一个模型没有数据,可以对多个现场负载进行微调 Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/app/.virtualenvs/app/local/lib/python2.7/site-pack

我在尝试添加多对多关系时遇到以下错误。只有在尝试添加多对多字段时,才会发生错误。同一个模型没有数据,可以对多个现场负载进行微调

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/app/.virtualenvs/app/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/app/.virtualenvs/app/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/app/.virtualenvs/app/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/app/.virtualenvs/app/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/home/app/PycharmProjects/app/management/commands/import_data_csv.py", line 101, in handle
    ManualRef.manual_reference = Manual.objects.get(mtype=mid)
  File "/home/app/.virtualenvs/app/local/lib/python2.7/site-packages/django/db/models/fields/related.py", line 1188, in __set__
    manager = self.__get__(instance)
  File "/home/app/.virtualenvs/app/local/lib/python2.7/site-packages/django/db/models/fields/related.py", line 1178, in __get__
    through=self.field.rel.through,
  File "/home/app/.virtualenvs/app/local/lib/python2.7/site-packages/django/db/models/fields/related.py", line 831, in __init__
    (instance, source_field_name))
ValueError: "<MODEL MODELobject>" needs to have a value for field "manual_reference" before this many-to-many relationship can be used
我的代码和我正在做的是:

mid = MType.objects.get(description =row[16]) 
ManRef = ManualRefs()
Man = Manual()
for refer in references:
  types, reference = refer.split(':', 1)

  ManRef.reference_type = types
  ManRef.reference = reference
  ManRef.manual_reference = Manual.objects.get(mtype=mid)

  ManRef.save()
  Man.save()
  ManRef.Manual.add(ManRef)

我做错了什么?谢谢

要访问
多个
字段,必须先将对象保存到数据库中。这意味着您只能在
ManRef.manual\u reference=manual.objects.get(mtype=mid)
之后执行
ManRef.save()。这意味着您只能在
ManRef.save()之后执行
ManRef.manual\u reference=manual.objects.get(mtype=mid)

mid = MType.objects.get(description =row[16]) 
ManRef = ManualRefs()
Man = Manual()
for refer in references:
  types, reference = refer.split(':', 1)

  ManRef.reference_type = types
  ManRef.reference = reference
  ManRef.manual_reference = Manual.objects.get(mtype=mid)

  ManRef.save()
  Man.save()
  ManRef.Manual.add(ManRef)