2016-11-29 98 views
0

我在嘗試初始化某些數據時遇到了問題。Django loaddata error __init __()需要3個參數(給出1)

當我運行manage.py loaddata --verbosity = 1 initial.json

以此爲我initial.json文件:

[ 
    { 
    "model": "listen.Playlist", 
    "pk": 1, 
    "fields": { 
     "message": "Hello There!", 
     "url": "pl8675309", 
     "background": "citylights.png" 
    } 
    } 
] 

和輸出我得到的是:

File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 359, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 294, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 345, in execute 
    output = self.handle(*args, **options) 
    File "/Library/Python/2.7/site-packages/django/core/management/commands/loaddata.py", line 64, in handle 
    self.loaddata(fixture_labels) 
    File "/Library/Python/2.7/site-packages/django/core/management/commands/loaddata.py", line 104, in loaddata 
    self.load_label(fixture_label) 
    File "/Library/Python/2.7/site-packages/django/core/management/commands/loaddata.py", line 161, in load_label 
    for obj in objects: 
    File "/Library/Python/2.7/site-packages/django/core/serializers/json.py", line 86, in Deserializer 
    six.reraise(DeserializationError, DeserializationError(e), sys.exc_info()[2]) 
    File "/Library/Python/2.7/site-packages/django/core/serializers/json.py", line 80, in Deserializer 
    for obj in PythonDeserializer(objects, **options): 
    File "/Library/Python/2.7/site-packages/django/core/serializers/python.py", line 183, in Deserializer 
    obj = base.build_instance(Model, data, db) 
    File "/Library/Python/2.7/site-packages/django/core/serializers/base.py", line 218, in build_instance 
    obj = Model(**data) 
    File "/Library/Python/2.7/site-packages/django/db/models/base.py", line 556, in __init__ 
    super(Model, self).__init__() 
django.core.serializers.base.DeserializationError: Problem installing fixture 'initial.json': __init__() takes exactly 3 arguments (1 given) 
+0

你的'Playlist'模型是什麼樣的? –

+0

謝謝。只是看着我的模型刪除了一些不需要的東西,並修復了它。我很欣賞它! – thellamaone

回答

0

您還沒有顯示Minimal Complete Verifiable Example,因此我們無法重現您的代碼的功能。

我能猜到你寫模型子類有一個自定義__init__是意外需要多個參數:

File "/Library/Python/2.7/site-packages/django/db/models/base.py", line 556, in __init__ 
    super(Model, self).__init__() 
django.core.serializers.base.DeserializationError: Problem installing fixture 'initial.json': __init__() takes exactly 3 arguments (1 given) 

如果是這樣,你已經打破了里氏替換原則(該SOLID principles之一) - 你的子類實際上不允許用作父類。

相關問題