获取错误
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是我的用户应用程序,应用程序是完成大部分工作的地方。
settings.py
INSTALLED_APPS = (
...
"su",
"app",
)
AUTH_USER_MODEL = 'su.SuUser'
SU / 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):
...
仍然会遇到同样的错误。
答案 0 :(得分: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)。我没有追溯到它为什么,在哪里,或者它是否是设计的。有人知道吗?