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

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