Как правильно изменить атрибут Django FileField.upload_to? - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь переименовать функцию, используемую в атрибуте FileField.upload_to.После того, как я изменил имя функции, Django не работает на Performing system checks....И в трассировке я вижу AttributeError: module 'the_app.models' has no attribute 'old_function_name'.

Можно ли изменить имя функции / заменить функцию, используемую в upload_to.И если да, то как мне правильно это сделать?Правильно ли я считаю, что переписывать содержимое старой миграции (примененной на работающем сервере) - это плохая практика.

1 Ответ

1 голос
/ 27 марта 2019

Чтобы ответить на ваш вопрос, является ли это плохой практикой: с этим нужно быть осторожным. Вы определенно не хотите ничего менять в существующих миграциях, которые могли бы повлиять на базу данных. Но Django помещает в файлы миграции довольно много вещей, которые не влияют на базу данных. upload_to является одним из них (например, help_text также является одним из них).

Так что для изменений, которые не влияют на БД, продолжайте: измените их в своих моделях и измените их непосредственно в старых файлах миграции, не будет иметь никакого значения, применяли ли вы миграцию или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...