Django:__ init__.py软件包破坏了迁移

时间:2020-02-23 01:42:44

标签: python django django-migrations django-packages

在我的应用中,我具有文件结构:

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

在RandomFileName.py中,我具有帮助器类,该类为我的模型生成随机文件名:

class RandomFileName(object):
    ...

在模型中,我要将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加倍?我哪里出错了?

1 个答案:

答案 0 :(得分:0)

您的 init .py文件可能以某种方式导入了您的对象。检查一下如果不是,那么只需执行myapp.helpers.RandomFileName('images /')(基于异常消息)即可解决此问题。