2013-02-06 16 views
2

我試圖建立南方首次對我的開發環境。我有幾個模型已經安裝過。一旦南安裝完成,我跟隨南的文檔轉換我現有的應用程序。的Django /南設立失敗有關python manage.py schemamigration testapp --initial

不過,我收到下面的回溯。有任何想法嗎?

謝謝。

./manage.py convert_to_south testapp 
Creating __init__.py in '/home/testapp/../testapp/migrations'... 
Traceback (most recent call last): 
    File "./manage.py", line 14, in <module> 
execute_manager(settings) 
    File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager 
    utility.execute() 
    File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/usr/lib/python2.6/site-packages/django/core/management/base.py", line 191, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/usr/lib/python2.6/site-packages/django/core/management/base.py", line 220, in execute 
    output = self.handle(*args, **options) 
    File "/usr/lib/python2.6/site-packages/South-0.7.6-py2.6.egg/south/management/commands/convert_to_south.py", line 70, in handle 
management.call_command("schemamigration", app, initial=True, verbosity=verbosity) 
    File "/usr/lib/python2.6/site-packages/django/core/management/__init__.py", line 166, in call_command 
    return klass.execute(*args, **defaults) 
    File "/usr/lib/python2.6/site-packages/django/core/management/base.py", line 220, in execute 
    output = self.handle(*args, **options) 
    File "/usr/lib/python2.6/site-packages/South-0.7.6-py2.6.egg/south/management/commands/schemamigration.py", line 140, in handle 
    for action_name, params in change_source.get_changes(): 
    File "/usr/lib/python2.6/site-packages/South-0.7.6-py2.6.egg/south/creator/changes.py", line 444, in get_changes 
    model_defs = freeze_apps([self.migrations.app_label()]) 
    File "/usr/lib/python2.6/site-packages/South-0.7.6-py2.6.egg/south/creator/freezer.py", line 35, in freeze_apps 
    model_defs[model_key(model)] = prep_for_freeze(model) 
    File "/usr/lib/python2.6/site-packages/South-0.7.6-py2.6.egg/south/creator/freezer.py", line 71, in prep_for_freeze 
    fields = modelsinspector.get_model_fields(model, m2m=True) 
    File "/usr/lib/python2.6/site-packages/South-0.7.6-py2.6.egg/south/modelsinspector.py", line 411, in get_model_fields 
args, kwargs = introspector(field) 
    File "/usr/lib/python2.6/site-packages/South-0.7.6-py2.6.egg/south/modelsinspector.py", line 371, in introspector 
    kwargs[kwd] = get_value(field, defn) 
    File "/usr/lib/python2.6/site-packages/South-0.7.6-py2.6.egg/south/modelsinspector.py", line 268, in get_value 
    if "default" in options and value == options['default']: 
    File "/usr/lib/python2.6/site-packages/django/db/models/fields/__init__.py", line 124, in __cmp__ 
    return cmp(self.creation_counter, other.creation_counter) 
AttributeError: class NOT_PROVIDED has no attribute 'creation_counter' 

這是我的型號代碼。

我有ATLEAST二十個表是已經與執行syncdb工作。我只是想轉換爲南方,因爲放置桌子和重新創建是一件麻煩事。我已經移除了大部分的模型代碼來排除故障,這是剩下的。即使如此,我也得到了相同的回溯。

import datetime 
import urllib 

from django.db import models 
from django.contrib.auth.models import User 
from django.contrib.contenttypes.models import ContentType 
from django.contrib.admin.util import quote 
from django.utils.translation import ugettext_lazy as _ 
from django.utils.encoding import smart_unicode 
from django.utils.safestring import mark_safe 
from django.db import connection, transaction 
""" 
class BaseTable(models.Model): 
    updated = models.DateTimeField(_('updated'), auto_now=True) 
    created = models.DateTimeField(_('created'), auto_now_add=True) 
    is_active = models.BooleanField(_('active'), default=True) 

    class Meta: 
     abstract = True 
""" 

class UserProfile(models.Model): 
    # This field is required. 
    user = models.OneToOneField(User) 
    # Other fields here 
    accepted_eula = models.BooleanField() 
    favorite_animal = models.CharField(max_length=20, default="Dragons") 
+0

不小心點擊更新 – user2045399

+1

模型中可能有問題。你能發佈代碼嗎? – luc

+0

我有至少20個已經與syncdb一起工作的表。我只是想轉換爲南方,因爲放置桌子和重新創建是一件麻煩事。我已經移除了大部分的模型代碼來排除故障,這是剩下的。即使如此,我也得到了相同的回溯。我已經使用模型代碼更新了原始問題,因爲評論不允許長篇帖子。 – user2045399

回答

0

爲了讓南方用戶開始跟蹤預先存在的表格,您必須在安裝後立即運行syncdb。換句話說,您應該按照下列步驟操作:

$ pip install south 
$ nano settings.py 
Add south to installed apps & save 
$ python manage.py syncdb 
$ python manage.py convert_to_south <app> 
+0

對不起,遲到的迴應,但這些都是我遵循的確切指示,我得到上述錯誤。 – user2045399