2013-05-14 1 views
0

DB 마이그레이션을 위해 Django 웹 앱에서 south를 사용하고 있습니다. 나는 남쪽에서 장물과 장고를 아주 좋아합니다. 나는 공식 자습서와 함께 south를 사용하려했지만 예외적으로 실패했다. AttributeError : 'Options'객체에는 'index_together'속성이 없다.. 나는 다음과 같이 남쪽 명령을 실행Django South 스키마 미스 오류 AttributeError : 'Options'객체에 'index_together'속성이 없습니다.

class Author(models.Model): 
    name = models.CharField(max_length=64) 
    authorId = models.CharField(max_length=32) 

    def __unicode__(self): 
     return self.name 

    class Meta: 
     db_table="Author" 

class Video(models.Model): 
    videoId = models.CharField(max_length=32) 
    videoUrl = models.URLField(max_length=200) 
    author = models.ForeignKey(Author, null=True, related_name="videos", on_delete=models.SET_NULL) 

    class Meta: 
     db_table="Video" 

class User(models.Model): 
    token = models.CharField(max_length=50, null=True) 
    favs = models.ManyToManyField(Video, related_name="fans", db_table="VideoUserR") 

    class Meta: 
     db_table = "User" 

내가 가진 전체 오류 메시지가과 같습니다

class Knight(models.Model): 
    name = models.CharField(max_length=100) 
    of_the_round_table = models.BooleanField() 

내 사업 모델은 이것이다 :

python manage.py schemamigration southtut --initial 

southtut 모델이있다 아래 :

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 232, in execute 
    output = self.handle(*args, **options) 
    File "/Library/Python/2.7/site-packages/South-0.7.6-py2.7.egg/south/management/commands/schemamigration.py", line 151, in handle 
    for action_name, params in change_source.get_changes(): 
    File "/Library/Python/2.7/site-packages/South-0.7.6-py2.7.egg/south/creator/changes.py", line 460, in get_changes 
    model_defs = freeze_apps([self.migrations.app_label()]) 
    File "/Library/Python/2.7/site-packages/South-0.7.6-py2.7.egg/south/creator/freezer.py", line 37, in freeze_apps 
    model_defs[model_key(model)] = prep_for_freeze(model) 
    File "/Library/Python/2.7/site-packages/South-0.7.6-py2.7.egg/south/creator/freezer.py", line 78, in prep_for_freeze 
    fields['Meta'] = remove_useless_meta(modelsinspector.get_model_meta(model)) 
    File "/Library/Python/2.7/site-packages/South-0.7.6-py2.7.egg/south/modelsinspector.py", line 441, in get_model_meta 
    meta_def[kwd] = get_value(model._meta, defn) 
    File "/Library/Python/2.7/site-packages/South-0.7.6-py2.7.egg/south/modelsinspector.py", line 258, in get_value 
    value = get_attribute(field, attrname) 
    File "/Library/Python/2.7/site-packages/South-0.7.6-py2.7.egg/south/utils/__init__.py", line 38, in get_attribute 
    value = getattr(value, part) 
AttributeError: 'Options' object has no attribute 'index_together' 

감사합니다.

+1

모델을 게시 할 수 있습니까? –

+0

물론, 여기에 코드를 게시 할 수 있습니까? 또는 샘플 프로젝트를 게시 할 수 있습니다. – user806135

답변

1

모델의 메타 섹션에서 index_together 옵션을 사용하려고했기 때문입니다. 하지만이 옵션은 django 1.5+에서만 사용할 수 있으며 최근 버전의 django에서 실행한다고 추측합니다.

+0

내 게시물에서 볼 수 있듯이 메타 데이터 섹션에서 db_table을 설정했으며 다른 속성은 다루지 않았습니다. – user806135

+0

남반구없이 프로젝트를 시작합니까? 아직도 당신이 뭔가를 놓치고있는 것을보고 있습니다. 사우스 캐롤라이나는 당신이 모델에서 지정하지 않는 한 index_together 속성을 사용하지 않습니다. – Aldarund

+0

'launch'와 같은 의미 일 경우, _manager.py runserver_ 명령을 서버 시간으로 실행합니다. 나는 index_together를 만지지 않았고, 장고는 1.4 버전입니다 – user806135

1

내 장고를 1.5.1로 업데이트했는데이 오류가 사라졌습니다. 나는 'index_together'가 어떻게 나오는지 모르지만 장고 1.5.1에서 사용할 수 있기 때문에 필요로하는 것을 얻는다.

6

남쪽 0.8에 버그가 있습니다. 0.8.1 이상으로 업데이트하면 모두 좋을 것입니다.

+1

나는 한 번 이상 upvote 할 수 있으면 좋겠다 :) – JivanAmara