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

frn*_*nhr 21 django django-models django-settings django-users

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

class User(AbstractUser):
    class Meta(AbstractUser.Meta):
        swappable = 'AUTH_USER_MODEL'
Run Code Online (Sandbox Code Playgroud)

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

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

Sar*_*ser 23

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