2

当我尝试使用 –auto 功能进行新迁移时。python manage.py schemamigration blogger --auto表明:

You cannot use --auto on an app with no migrations. Try --initial.

所以我在终端中再次运行第一次迁移python manage.py schemamigration blogger --initial。我收到了这个错误:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 285, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/South-0.8.1-py2.7.egg/south/management/commands/schemamigration.py", line 151, in handle
    for action_name, params in change_source.get_changes():
  File "/usr/local/lib/python2.7/dist-packages/South-0.8.1-py2.7.egg/south/creator/changes.py", line 460, in get_changes
    model_defs = freeze_apps([self.migrations.app_label()])
  File "/usr/local/lib/python2.7/dist-packages/South-0.8.1-py2.7.egg/south/creator/freezer.py", line 32, in freeze_apps
    frozen_models.update(model_dependencies(model))
  File "/usr/local/lib/python2.7/dist-packages/South-0.8.1-py2.7.egg/south/creator/freezer.py", line 96, in model_dependencies
    depends.update(field_dependencies(field, checked_models))
  File "/usr/local/lib/python2.7/dist-packages/South-0.8.1-py2.7.egg/south/creator/freezer.py", line 132, in field_dependencies
    value = get_attribute(field, attrname)
  File "/usr/local/lib/python2.7/dist-packages/South-0.8.1-py2.7.egg/south/utils/__init__.py", line 38, in get_attribute
    value = getattr(value, part)
AttributeError: 'TaggableManager' object has no attribute 'primary_key'

这是应用程序博主的models.py

from django.db import models
from taggit.managers import TaggableManager

# Create your models here.
class Post(models.Model):
    title = models.CharField(max_length=100)
    body = models.TextField()
    created = models.DateTimeField()
    tags = TaggableManager()

    def __unicode__(self):
        return self.title
4

1 回答 1

1

众所周知,Taggit 会让 South 感到困惑,他们甚至在文档深处的某个地方提到了这一点。看看http://south.readthedocs.org/en/latest/customfields.html#field-name-patterns看看它是否有帮助。

基本上你必须告诉 South 忽略 taggit 使用类似的东西:

from south.modelsinspector import add_ignored_fields
add_ignored_fields(["^taggit\.managers"])
于 2014-01-21T09:21:17.363 回答