在我的应用中,我具有文件结构:
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加倍?我哪里出错了?
答案 0 :(得分:0)
您的 init .py文件可能以某种方式导入了您的对象。检查一下如果不是,那么只需执行myapp.helpers.RandomFileName('images /')(基于异常消息)即可解决此问题。