我创建了这个可重用应用程序的草稿:django-separate-users。它基本上可以工作:) 但是,此代码仅在 django 1.11+ 上运行。问题就在这里,调用get_user_model()
: models.py。
文档指出,在 1.11 中“get_user_model()
添加了在导入时调用的能力。”:
https ://docs.djangoproject.com/en/1.11/topics/auth/customizing/#referencing-the-user-model
我怎样才能让这段代码工作到 django 1.8?AUTH_USER_MODEL 是一个字符串,所以它不起作用?据我所见,get_user_model()
使用 django's apps.get_model('my_app', 'my_model')
,在 django 1.11 中,它添加了一个require_ready
kwarg。比较django 1.11与django 1.10 get_user_model。此外,apps.get_model()
在 django 1.11 中引入了 kwarg。
这是代码(models.py),简化:
from django.contrib.auth import get_user_model
UserModel = get_user_model()
class FrontendUser(UserModel):
objects = FrontendUserManager()
def save(self, *args, **kwargs):
self.is_staff = False
super(FrontendUser, self).save(*args, **kwargs)
class Meta:
proxy = True
以及 django<1.11 中的(明显)错误:
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
也许这根本不可能实现?