2014-10-17 10 views
23

मैं django 1.7 का उपयोग कर रहा हूं और मैंने अभी एक कस्टम उपयोगकर्ता मॉडल जोड़ा है। जब मैं python3 manage.py makemigrations या python3 manage.py migrate चलाता हूं तो मुझे त्रुटि मिलती है: TypeError: __init__() got an unexpected keyword argument 'preserve_default'। यह मुद्दा नया कस्टम उपयोगकर्ता मॉडल जोड़ने के बाद आया था। पूरा ट्रैस है:Django 1.7 माइग्रेशन

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 385, in execute_from_command_line 
    utility.execute() 
    File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 377, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 288, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 338, in execute 
    output = self.handle(*args, **options) 
    File "/usr/local/lib/python3.4/dist-packages/django/core/management/commands/migrate.py", line 63, in handle 
    executor = MigrationExecutor(connection, self.migration_progress_callback) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/executor.py", line 17, in __init__ 
    self.loader = MigrationLoader(self.connection) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/loader.py", line 48, in __init__ 
    self.build_graph() 
    File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/loader.py", line 173, in build_graph 
    self.load_disk() 
    File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/loader.py", line 103, in load_disk 
    migration_module = import_module("%s.%s" % (module_name, migration_name)) 
    File "/usr/lib/python3.4/importlib/__init__.py", line 109, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 2231, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 2214, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2203, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1129, in _exec 
    File "<frozen importlib._bootstrap>", line 1448, in exec_module 
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 
    File "/home/denny/workspace/teenvestor/core/migrations/0003_auto_20141017_1749.py", line 7, in <module> 
    class Migration(migrations.Migration): 
    File "/home/denny/workspace/teenvestor/core/migrations/0003_auto_20141017_1749.py", line 46, in Migration 
    preserve_default=True, 
TypeError: __init__() got an unexpected keyword argument 'preserve_default' 
+0

एक पूर्ण ट्रेसबैक बहुत मदद करेगा। इसके अलावा जो Django 1.7 संस्करण आपने स्थापित किया है? (उदाहरण के लिए 1.7.1) – alecxe

+0

बस पूर्ण ट्रेसबैक के साथ संपादित किया गया। 1.7 के विशिष्ट संस्करण के बारे में निश्चित नहीं है ... मैंने अभी एक पाइप स्थापित किया है django == 1.7 – Denny

उत्तर

42

Django 1.7.1 preserve_default परम के लिए समर्थन जोड़ा: मैं के साथ इसे हल AlterField में। इसलिए संस्करण 1.7 से Django का अपग्रेड इस मुद्दे को हल करेगा।

pip install django --upgrade python manage.py migrate

+0

यह सही उत्तर है। – chhantyal

+0

मैं इसकी पुष्टि कर सकता हूं। –

+0

वैकल्पिक रूप से आप preserve_default तर्क को हटाने के लिए माइग्रेशन फ़ाइल मैन्युअल रूप से संपादित कर सकते हैं। – Richard

7

एक ही समस्या थी। क्यों वास्तव में यह इस तरह का हल हो जाता है

pip install django --upgrade 

python manage.py makemigrations 

python manage.py migrate 

, मुझे पता है, गहरा ज्ञान के साथ किसी को समझाने के लिए सक्षम हो सकता है न ...

+0

शायद क्योंकि django को oct 22 पर 1.7.1 पर अपडेट किया गया था? – enapupe

0

मैं एक ही समस्या से मुलाकात की। और मैंने पाया कि मेरा Django संस्करण 1.7.0 है। pip install django --upgrade चलाने के बाद, मेरा Django संस्करण 1.7.4 पर बदल गया, और समस्या समाप्त हो गई है।

मुझे अन्य कंप्यूटर याद है जो परियोजना फ़ाइलों को इंटरनेट के माध्यम से सिंक करता है, इसमें Django संस्करण 1.7.3 है। तो मैं इस निष्कर्ष पर आया कि यह समस्या Django के असंगत संस्करणों के कारण हुई है।

1
pip install "django<1.8" -U 

फिर माइग्रेशन चलाएं .... यदि आप संस्करण के बिना अपडेट करते हैं तो आप एक और सक्रिय ट्रंक के साथ समाप्त हो जाएंगे और यह वही नहीं है जो आप चाहते हैं।

संबंधित मुद्दे