我的图片上传速度可调,如下所示:
@deconstructible
class Rename(object):
def __init__(self, path):
self.path = path
def __call__(self, instance, filename):
# some stuff and returns path
当我将__init__
签名更改为:
def __init__(self, path, file_type):
self.path = path
self.file_type = file_type
我再也无法运行makemigrations了:
File "/pathtomyapp/migrations/0001_initial.py", line 59, in Migration
('avatar', models.ImageField(blank=True, null=True, upload_to=myapp.models.Rename(b'profiles'))),
TypeError: __init__() takes exactly 3 arguments (2 given)
有没有办法在不修改迁移文件中的重命名功能签名的情况下解决此问题
答案 0 :(得分:1)
您可以更改迁移文件并提供file_type
('avatar', models.ImageField(blank=True, null=True, upload_to=myapp.models.Rename(b'profiles', 'file-type'))),
或者在file_type
方法中将__init__
参数设为可选。
@deconstructible
class Rename(object):
def __init__(self, path, file_type=None):