Django не может сохранить данные во второй базе данных
Я пробовал использовать несколько баз данных в моих проектах django, затем я создаю модель с внешним ключом к User, она не может сохраниться во вторую базу данных
это модели UserData
class UserData(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='user', related_query_name='user')
is_controller = models.BooleanField(default=False)
phone_number = models.CharField(max_length=255, blank=True, null=True)
then in views
instance = UserData(
user=request.user,
nim=nim,
phone_number=phone
)
после этого я сохраняю экземпляр
>>> instance.save() #it works on default database (sqlite)
>>> instance.save(using='db_alias') # return an error
ошибка говорит, что не удается добавить или обновить дочерний ряд из-за внешнего ключа
(1452, 'Cannot add or update a child row: a foreign key constraint fails (
labs.
presence_userdata, CONSTRAINT
presence_userdata_user_id_4b3dfc56_fk_auth_user_id FOREIGN KEY (
user_id) REFERENCES
auth_user (
id))')
может ли кто-нибудь помочь мне решить эту проблему
Django не поддерживает отношения FK или M2M между несколькими базами данных. Как указано в документации, любое FK или M2M отношение должно происходить в одном экземпляре базы данных.
Ссылка https://docs.djangoproject.com/en/4.1/topics/db/multi-db/#cross-database-relations