No es inusual para sustituir modelo de usuario, ya que se afirma en los documentos: https://docs.djangoproject.com/es/1.9/topics/auth/customizing/#substituting-a-custom-user-model, por lo que, teniendo esto en cuenta, es mejor obtener la clase modelo de usuario con el siguiente código:
from django.contrib.auth import get_user_model
UserModel = get_user_model()
A continuación, puede utilizar este UserModel
para agregar la funcionalidad como @Lakshman Prasad sugiere: UserModel.add_to_class('get_related_foo_models', get_related_foo_models)
.
Con el fin de conseguir el código que se ejecuta sólo una vez yo prefiero usar Django clases aplicación de configuración (https://docs.djangoproject.com/es/1.9/ref/applications/), por lo que un ejemplo de trabajo completo será:
# myapp/__init__.py
default_app_config = 'myapp.apps.MyAppConfig'
# myapp/apps.py
from django.apps import AppConfig
from django.contrib.auth import get_user_model
class MyAppConfig(AppConfig):
name = 'myapp'
verbose_name = 'MyApp'
def ready(self):
# Add some functions to user model:
def custom_function(self):
# Do whatsoever
pass
UserModel = get_user_model()
UserModel.add_to_class('custom_function', custom_function)
relacionadas: [Ampliación del modelo de usuario con campos personalizados en Django] (http://stackoverflow.com/questions/44109/extending-the-user-model-with-custom-fields-in-django) – miku
Aware, pero no quiero agregar un campo personalizado, solo un funcionar sin alterar el modelo de Usuario original. – Hellnar
http://docs.djangoproject.com/en/1.2/ref/models/relations/#django.db.models.fields.related.RelatedManager –