Переименование реляционных таблиц в существующей схеме в Django

В связи с переходом с django 2.x на django 4.x, мне пришлось переименовать свой проект, чтобы исправить первоначальное имя, содержащее '-' и не содержащее '_'.

Первоначальное название проекта было DEMANDE-PROJET В модели под названием DEMANDE ( DEMANDE-PROJET_DEMANDE ) у меня есть внешний ключ (поле created_by ) к модели под названием UserDemandeMapper

created_by = models.ForeignKey('UserDemandeMapper', related_name="demande_createur",
                                   on_delete=models.SET_NULL, null=True, blank=True)

Django обрабатывает эту таблицу самостоятельно, и в браузере DB я вижу ее под именем DEMANDE-PROJET_USERDEMANDE2573



Теперь я переименовал свой проект, django хочет запросить DEMANDE_PROJET_* вместо DEMANDE-PROJET_*
Я больше не могу ничего запросить.

Я добавил :

    class Meta:
        db_table = "DEMANDE-PROJET_DEMANDE"

для связи моей модели django с таблицами, которые получают фиксированное имя. И теперь я могу запрашивать Demande без каких-либо проблем.
Проблема возникает из-за моего внешнего ключа created_by. У меня есть значение ID, но нет объекта модели внешней модели.

Я пытался добавить UserDemandeMapper мета-класс с именем db_name, но ничего не получилось.

Поскольку я не специалист по миграции и эта сторона django немного туманна, я хотел бы получить помощь в этом вопросе.


Заранее спасибо.
Дэмиен

Я пытался добавить UserDemandeMapper мета-класс с именем db_name, но ничего не получилось.

Если это не опечатка в вашем вопросе, я предлагаю попробовать db_table вместо db_name, как вы делали это для другого класса:

class UserDemandeMapper(models.Model):

    class Meta:
        db_table = "DEMANDE-PROJET_USERDEMANDEMAPPER" 
Вернуться на верх