在我的应用中,我具有文件结构:
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加倍?我哪里出错了?
init。py文件可能已导入您的对象。校验。如果不是,则只需执行myapp.helpers.RandomFileName('images /')(基于异常消息)即可解决此问题。