1

得到错误

CommandError: One or more models did not validate:
admin.logentry: 'user' has a relation with model su.SuUser, which has either not been installed or is abstract.`

当我跑步时python manage.py test

su 是我的用户应用程序,而应用程序是完成大部分工作的地方。

设置.py

INSTALLED_APPS = (
    ...
    "su",
    "app",
)
AUTH_USER_MODEL = 'su.SuUser'

苏/models.py

class SuUser(AbstractBaseUser, PermissionsMixin):
    username = models.CharField(_('User name'), max_length=254, unique=True, db_index=True)
    ...

    class Meta:
        app_label = 'su'

应用程序/tests.py

from django_nose import FastFixtureTestCase as TestCase

from nose.tools import assert_equals

from django.contrib.auth import get_user_model
from django.test.utils import override_settings

User = get_user_model()

@override_settings(AUTH_USER_MODEL='su.SuUser')
class TestApp(TestCase):
    ...

任何想法?syncdb工作正常。运行应用程序工作正常。

编辑 1

即使我尝试跳过自定义用户,例如

@skipIfCustomUser
class TestApp(TestCase):
    ...

仍然得到相同的错误。

4

1 回答 1

0

我找到了修复程序,但这可能是错误的症状。以前,我的目录结构如下所示:

root/
    su/
        su/
            views.py
            models.py (held SuUser)
            urls.py
            wsgi.py
            ...
        app/
            views.py
            models.py
            urls.py
            tests.py

一时兴起,我将用户部分分解为自己的应用程序

root/
    su/
        su/
            views.py
            models.py
            urls.py
            wsgi.py
            ...
        suuser/
            views.py
            models.py (holds SuUser)
            urls.py
            ...
        app/
            views.py
            models.py
            urls.py
            tests.py

这行得通。调试后,我发现 su "app" 从未加载到 app_store (django/db/models/loading.py) 中。我还没有追溯它的原因、地点或是否是设计使然。有人知道吗?

于 2013-11-11T20:28:15.817 回答