Почему вы расширяете пользователя? Пожалуйста, уточните.
Если вы добавляете больше информации о пользователях, вам не нужно проверять свой собственный пользователь и систему аутентификации. Версия Джанго об этом довольно солидна. Управление пользователями находится в django.contrib.auth.
Если вам нужно настроить информацию, хранящуюся у пользователей, сначала определите модель, например
class Profile(models.Model):
...
user = models.ForeignKey("django.contrib.auth.models.User", unique=True)
и затем установите
AUTH_PROFILE_MODULE = "appname.profile"
в ваших settings.py
Преимущество установки этого параметра позволяет использовать такой код в своих представлениях:
def my_view(request):
profile = request.user.get_profile()
etc...
Если вы пытаетесь предоставить пользователям больше возможностей для аутентификации, вы можете добавить аутентификационный бэкэнд. Расширьте или повторно внедрите django.contrib.auth.backends.ModelBackend и установите его как
ваш AUTHENTICATION_BACKENDS в settings.py.
Если вы хотите использовать другую концепцию разрешений или групп, отличную от предоставляемой django, ничто не остановит вас. Django использует эти два понятия только в django.contrib.admin (о котором я знаю), и вы можете использовать другое понятие для этих тем по своему усмотрению.