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

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -