看起来很难的django auth模型代码,我遇到了这段代码:
class User(AbstractUser):
class Meta(AbstractUser.Meta):
swappable = 'AUTH_USER_MODEL'
很明显它与settings.py中的新AUTH_USER_MODEL
设置有关,但它是如何实际工作的,通过什么python“技巧”?
在其他情况下可以使用它吗?
答案 0 :(得分:20)
可交换是一种“故意无证”的功能,目前正在开发/测试中。它用于处理“我有一个基本的抽象模型,它有一些外键关系。” Django's ticketing system和github提供了更多细节。因为它是一个“隐形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