Использование одной и той же таблицы базы данных в двух разных проектах Django
Я новичок в Django.
Я хотел бы узнать, как настроить два разных проекта на совместное использование одной и той же таблицы базы данных в Django. База данных, которую я использую - MySQL.
Допустим, есть два проекта, project A
и project B
. В project A
я уже создал в нем модель custom user. А в project B
я хочу использовать таблицу custom user из базы данных, созданную в project A
только для входа. Это означает, что в project A
есть регистрация и логин для пользовательской модели пользователя.
В project B
есть login, только он будет использовать те же custom user данные в базе данных.
Нужно ли переопределять ту же пользовательскую модель пользователя из project A
в project B
?
Какие настройки конфигурации необходимо выполнить?
Заранее спасибо.
проект B не может получить доступ к таблице из проекта A. Но одна и та же база данных может быть доступна нескольким проектам через включение удаленного доступа к базе данных родительского проекта. Но вы должны помнить о некоторых моментах, когда вы создаете модель в любом проекте, вы должны добавить эту модель в остальные проекты
Хорошо, каким-то образом мне удалось решить эту проблему.
Как и в предыдущем шаге, я сделал python manage.py inspectdb > models.py
в проекте A, в котором я уже создал пользовательскую модель пользователя , которая использовалась для регистрации и входа. Затем я скопировал этот файл models.py
в проект B и изменил пользовательскую модель пользователя, сгенерированную project A
, точно такими же шагами, как я создал пользовательскую модель пользователя в project A
. Это означает, что я сделал класс CustomUserManager
, а также другие необходимые вещи, требуемые при создании custom user model(AbstractBaseUser)
.
Затем, в settings.py
из project B
, я сделал AUTH_USER_MODEL
, который как-то решил эту проблему.
Похоже, что для того, чтобы использовать одну и ту же пользовательскую модель в разных проектах с одной и той же базой данных, нам нужно переопределить точную пользовательскую модель вместе с managed = False
.