django的get_user_model()仅在导入时间为1.11

时间:2017-10-25 14:58:36

标签: python django django-models django-custom-user

我已经创建了可重用应用程序的草稿: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的apps.get_model('my_app', 'my_model'),在django 1.11中,它添加了require_ready kwarg。比较django 1.11django 1.10 get_user_model。此外,apps.get_model()的kwarg在django 1.11中被引入。

这是代码(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.

也许这根本不可能实现?

0 个答案:

没有答案