Django: пакет __init__.py прерывает миграцию - PullRequest
0 голосов
/ 23 февраля 2020

В моем приложении есть файловая структура:

myapp/
    ...
    models.py
    helpers/
        __init__.py
        RandomFileName.py
    ...

В RandomFileName.py у меня есть вспомогательный класс, который генерирует случайные имена файлов для моих моделей:

class RandomFileName(object):
    ...

В моделях I хочу обработать каталог helpers/ как модуль:

from myapp.helpers import RandomFileName

class MyImage(models.Model):
    ...
    image = models.ImageField(upload_to=RandomFileName('images/'))
    ...

Затем я запускаю python3 manage.py makemigrations myapp Выглядит хорошо.

Затем я запускаю python3 manage.py migrate и получаю ошибку:

in Migration
  ('image', models.ImageField(upload_to=myapp.helpers.RandomFileName.RandomFileName('images/'))),
AttributeError: type object 'RandomFileName' has no attribute 'RandomFileName'

Почему RandomFileName удваивается в миграциях? Где я go ошибся?

1 Ответ

0 голосов
/ 23 февраля 2020

Каким-то образом ваш init .py файл мог импортировать ваш объект. Проверьте. Если нет, то просто вместо этого выполните myapp.helpers.RandomFileName ('images /') (основываясь на сообщении об исключении).

...