with the inherit from extender existing contrib auth django django-models django-users django-settings

the - import user django



¿Qué es "intercambiable" en el modelo meta? (2)

Django 1.5 agregó los modelos de usuario intercambiables, por lo que puede reemplazar el modelo de usuario de Django por uno propio (limite el número de caracteres, use el correo electrónico como identificador ...)

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

Buscando el código de modelos de django auth, me topé con este fragmento de código:

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

Es obvio que tiene algo que ver con la nueva configuración de AUTH_USER_MODEL en settings.py, pero ¿cómo funciona realmente, por qué "truco" de python?

¿Y en qué otras situaciones se puede utilizar?


swappable es una característica "no documentada intencionalmente" que se encuentra actualmente en desarrollo / en prueba. Se utiliza para manejar "Tengo un modelo abstracto base que tiene algunas relaciones de clave externa". Un poco más de detalle está disponible en el sistema de tickets de Django y en github . Debido a que es una función "sigilosa alfa", no se garantiza que funcione (para nada que no sea el Usuario), y entender la operación detallada probablemente requerirá que se introduzca el código fuente. Funciona con AUTH_USER_MODEL porque el modelo de usuario y la marca intercambiable se desarrollaron juntos, específicamente entre sí.