Джанго. Один проект. Отдельные системы авторизации и шаблоны для разных приложений

У меня есть проект со следующей структурой:

  • main_app
  • accounts_app (хранит модель CustomUser)
  • my_app1
    • users_app (внутри my_app1)
  • my_app2
    • users_app (внутри my_app2)

Причина раздельного users_app в том, что я хочу повторно использовать my_app1 и my_app2 в других проектах. Поэтому я хочу, чтобы они были настолько раздельными, насколько это возможно.

Я хочу иметь отдельную систему авторизации (пользовательская модель пользователя, регистрация, шаблоны, перенаправление входа/выхода и т.д.) для каждого приложения. Так, например, допустим, у меня есть my-app1 на url localhost:8000/my-app1/. Это означает, что регистрация будет происходить по адресу /my-app1/signup/, вход в систему по адресу /my-app1/login/, а перенаправление входа в систему будет происходить по адресу /my-app1/

Я также хочу использовать allauth в некоторых или всех приложениях. Вопросы:

  1. Имеет ли вообще смысл такая структура проекта? (да/нет)
  2. Возможно ли иметь отдельные шаблоны регистрации/сигнализации/etc для каждого приложения, использующего allauth? (да/нет - ссылка на документ?) Я не смог найти ответ на этот вопрос.
  3. .
  4. Как мне избежать конфликтов БД с миграциями при создании пользовательского пользователя для каждого приложения? Сейчас я наследую от AbstractUser в model.py каждого приложения, вот так: class MainCustomUser(AbstractUser), class AppOneUser(AbstractUser), class AppTwoUser(AbstractUser) Но это, похоже, не работает.

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

settings.py:

...

# django-allauth config
SITE_ID = 1
LOGIN_REDIRECT_URL = 'main_app:index'
ACCOUNT_LOGOUT_REDIRECT = 'main_app:index'
AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
)

...
Вернуться на верх