发布加载Django夹具。UnboundLocalError:局部变量';pk';分配前参考

发布加载Django夹具。UnboundLocalError:局部变量';pk';分配前参考,django,Django,我将尝试使用Django fixture文件加载以下模型的数据 class StaffPosition(models.Model): title = models.CharField(max_length=64) class Rating(models.Model): title = models.CharField(max_length=64) class StaffRatingCombinations(models.Model): staff_position = model

我将尝试使用Django fixture文件加载以下模型的数据

class StaffPosition(models.Model):
  title = models.CharField(max_length=64)

class Rating(models.Model):
  title = models.CharField(max_length=64)

class StaffRatingCombinations(models.Model):
  staff_position = models.ManyToManyField(StaffPosition)
  position_rating = models.ManyToManyField(Rating)
和下面的夹具。当我只为staffposition和rating表添加记录时,数据加载良好。当我尝试将外键用于staffratingcombination时,会出现以下错误

[{
  "model": "myapp.staffposition",
  "pk": 1,
  "fields": {
    "title": "Lead"
  }
},
{
  "model": "myapp.rating",
  "pk": 1,
  "fields": {
    "title": "Gold"
  }
},
{
  "model": "myapp.staffratingcombinations",
  "pk": 1,
  "fields": {
    "staff_position": 1,
    "position_rating": 1
  }
}]
当我运行loaddata时,我得到:

(myapp) pi@raspberrypi:~/Documents/Development/Myapp/django/myapp $ python3 manage.py loaddata initial_data.json                                                                
Traceback (most recent call last):                                                                                                                                                        
  File "/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/serializers/base.py", line 287, in deserialize_m2m_values                                          
    for pk in field_value:                                                                                                                                                                
TypeError: 'int' object is not iterable                                                                                                                                                   
                                                                                                                                                                                          
During handling of the above exception, another exception occurred: 
                                                                                                                                                                                          
Traceback (most recent call last):                                                                                                                                                        
  File "/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/serializers/json.py", line 69, in Deserializer                                                     
    yield from PythonDeserializer(objects, **options)                                                                                                                                     
  File "/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/serializers/python.py", line 122, in Deserializer                                                  
    values = base.deserialize_m2m_values(field, field_value, using, handle_forward_references)                                                                                            
  File "/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/serializers/base.py", line 294, in deserialize_m2m_values                                          
    raise M2MDeserializationError(e, pk)                                                                                                                                                  
UnboundLocalError: local variable 'pk' referenced before assignment                                                                                                                       
                                                                                                                                                                                          
The above exception was the direct cause of the following exception:                                                                                                                      
                                                                                                                                                                                          
Traceback (most recent call last):                                                                                                                                                        
  File "manage.py", line 21, in <module>                                                                                                                                                  
    main()                                                                                                                                                                                
  File "manage.py", line 17, in main                                                                                                                                                      
    execute_from_command_line(sys.argv)                                                                                                                                                   
  File "/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line                                    
    utility.execute()                                                                                                                                                                     
  File "/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/management/__init__.py", line 395, in execute                                                      
    self.fetch_command(subcommand).run_from_argv(self.argv)                                                                                                                               
  File "/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/management/base.py", line 328, in run_from_argv                                                    
    self.execute(*args, **cmd_options)                                                                                                                                                    
  File "/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/management/base.py", line 369, in execute                                                          
    output = self.handle(*args, **options)                                                                                                                                                
  File "/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/management/commands/loaddata.py", line 72, in handle                                               
    self.loaddata(fixture_labels)                                                                                                                                                         
  File "/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/management/commands/loaddata.py", line 114, in loaddata                                            
    self.load_label(fixture_label)                                                                                                                                                        
  File "/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/management/commands/loaddata.py", line 172, in load_label                                          
    for obj in objects:                                                                                                                                                                   
  File "/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/serializers/json.py", line 73, in Deserializer                                                     
    raise DeserializationError() from exc                                                                                                                                                 
django.core.serializers.base.DeserializationError: Problem installing fixture '/home/pi/Documents/Development/Myapp/django/myapp/app/fixtures/initial_data.json':   
(myapp)pi@raspberrypi:~/Documents/Development/Myapp/django/Myapp$python3 manage.py loaddata initial\u data.json
回溯(最近一次呼叫最后一次):
文件“/home/pi/Documents/Development/Myapp/lib/python3.7/site packages/django/core/serializers/base.py”,第287行,反序列化\u m2m\u值
对于字段_值中的pk:
TypeError:“int”对象不可编辑
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
反序列化程序中的文件“/home/pi/Documents/Development/Myapp/lib/python3.7/site packages/django/core/serializers/json.py”,第69行
PythonDeserializer的收益(对象,**选项)
反序列化程序中的文件“/home/pi/Documents/Development/Myapp/lib/python3.7/site packages/django/core/serializers/python.py”,第122行
values=base。反序列化\u m2m\u值(字段、字段\u值、使用、句柄\u前向\u引用)
文件“/home/pi/Documents/Development/Myapp/lib/python3.7/site packages/django/core/serializers/base.py”,第294行,反序列化\u m2m\u值
升起M2MDeserializationError(e,pk)
UnboundLocalError:赋值前引用了局部变量“pk”
上述异常是以下异常的直接原因:
回溯(最近一次呼叫最后一次):
文件“manage.py”,第21行,在
main()
文件“manage.py”,第17行,主
从命令行(sys.argv)执行命令
文件“/home/pi/Documents/Development/Myapp/lib/python3.7/site packages/django/core/management/_init__.py”,第401行,从命令行执行
utility.execute()
文件“/home/pi/Documents/Development/Myapp/lib/python3.7/site packages/django/core/management/__init__.py”,第395行,在execute中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/management/base.py”,第328行,运行时从
self.execute(*args,**cmd_选项)
文件“/home/pi/Documents/Development/Myapp/lib/python3.7/site-packages/django/core/manag
    TypeError: 'int' object is not iterable

"staff_position": 1,

"position_rating": 1
"staff_position": [1],

"position_rating": [1]