什么是模型元中的“可交换”?

时间:2014-02-25 20:29:28

标签: django django-models django-users django-settings

看起来很难的django auth模型代码,我遇到了这段代码:

class User(AbstractUser):
    class Meta(AbstractUser.Meta):
        swappable = 'AUTH_USER_MODEL'

很明显它与settings.py中的新AUTH_USER_MODEL设置有关,但它是如何实际工作的,通过什么python“技巧”?

在其他情况下可以使用它吗?

2 个答案:

答案 0 :(得分:20)

可交换是一种“故意无证”的功能,目前正在开发/测试中。它用于处理“我有一个基本的抽象模型,它有一些外键关系。” Django's ticketing systemgithub提供了更多细节。因为它是一个“隐形alpha”功能,所以它不能保证工作(对于User以外的任何其他功能),并且理解详细操作可能需要潜入源代码。它适用于 AUTH_USER_MODEL ,因为用户模型和可交换标志是一起开发的,专门用于彼此。

答案 1 :(得分:2)

Django 1.5添加了可交换的用户模型,因此您可以将Django User模型替换为您自己的模型(限制字符数,使用电子邮件作为标识符......)

更多: https://docs.djangoproject.com/en/dev/releases/1.5/#configurable-user-model https://docs.djangoproject.com/en/dev/topics/auth/customizing/#auth-custom-user