2016-10-29 3 views
0

Я создал пользовательскую модель (AbstractBaseUser), чтобы пользователь мог войти на мой сайт.Django Custom User Model Login System

Проблема заключается в том, что я хочу продолжать использовать систему и систему аутентификации Django для администратора, чтобы сотрудники могли легко входить в систему и управлять ею.

Я видел много учебников, но все инструкции по изменению настройки AUTH_USER_MODEL, но если я изменю это, я не смогу продолжать использовать пользователя по умолчанию Django.

Есть ли решение для этого?

Заранее спасибо.

ответ

0

Я никогда не осуществилось это сам, но направить вас в правильном направлении, это может быть стоит иметь прочитать это:

https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#authentication-backends

По звукам вещей, которые вы можете быть в состоянии написать бэкэнда аутентификации для вашей модели конечного пользователя, которую вы можете запустить в тандеме с системой аутентификации Django.

Если вы могли бы заставить это работать, я бы предположил, что вам нужно будет убедиться, что модель пользовательского интерфейса, прошедшая проверку подлинности, не сможет получить доступ к административной части сайта.

Для меня вопрос о миллионе доллара здесь, почему вы хотите, чтобы пользователи фронта и бэкэнд на отдельных моделях? Они оба имеют одну и ту же работу, чтобы аутентифицировать пользователя?

В прошлом я создал несколько проектов, в которых есть пользователи и пользователи admin. Вне коробки без каких-либо изменений вы устанавливаете для пользователей-пользователей is_staff=False для конечных пользователей и is_staff=True для пользователей admin; который определяет, может ли пользователь получить доступ к административной части сайта, и у меня никогда не было проблем с этим подходом.

Если передний конечный пользователь (или бэкенд пользователь) желает дополнительные функциональные возможности, самым простым решением было бы расширить пользовательскую модель:

https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#extending-the-existing-user-model

В качестве альтернативы вы могли бы пользователь ваш может создать заказную модель пользователя и используйте это для обоих.

Если вы готовы предоставить более подробную информацию, возможно, я смогу помочь в дальнейшем, но если у вас нет веских причин для использования отдельных пользовательских моделей, я бы просто придерживался одного и настраивал и расширял по мере необходимости.

Надеюсь, это поможет.