2015-02-26 3 views
0

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

Подсайт определяется субдоменом, т.е. client1.example.com и client2.example.com будут представлять собой два разных подсайта, которые работают в одном приложении.

Я хотел бы иметь уникальных Пользователей на каждом дочернем сайте, так, например, [email protected] сможет зарегистрироваться для нескольких подсайтов с одинаковым именем пользователя (по электронной почте).

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

ответ

0

Я думаю, этого будет достаточно, чтобы определить вашу собственную модель пользователя.

Выведите из AbstractBaseUser

https://docs.djangoproject.com/en/1.7/topics/auth/customizing/#specifying-a-custom-user-model

и вам нужно будет unique_together = ('client_id', 'username',) https://docs.djangoproject.com/en/1.7/ref/models/options/#unique-together

редактировать:

нашел решение в SO

Django 1.7 multisite User model

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

+0

К сожалению, инфраструктура сайтов не работает с субдоменами, так как каждый сайт нуждается в уникальном SITE_ID в settings.py, так что это не вариант для меня, я боюсь. – Glenn

+0

umm? не можете ли вы просто использовать client_id вместо своего site_id? – eugene

Смежные вопросы