python - Best way to reference the User model in Django >= 1.5 -
what best way reference user model in django >= 1.5?
after reading referencing user model, i've started using (1) while:
(1)
from django.conf import settings django.db import models class article(models.model): author = models.foreignkey(settings.auth_user_model)
but following zen of python, readability counts, why not this:
(2)
from django.contrib.auth import get_user_model django.db import models user = get_user_model() class article(models.model): author = models.foreignkey(user)
update: of django 1.11, get_user_model
can called @ import time, in modules define models.
that means this: models.foreignkey(get_user_model(), ...)
original answer (django <= 1.11)
you might experience circular reference issues if use get_user_model
@ module level. option importing auth user model is:
from django.conf import settings auth_user_model = getattr(settings, 'auth_user_model', 'auth.user') # models class article(models.model): author = models.foreignkey(auth_user_model)
the getattr
return django's default user model, auth.user
, if auth_user_model
not detected in settings file.
Comments
Post a Comment