Django 生成属性参数值的模型方法
我想在模型内创建一个方法,可以对属性的参数调用该方法来填充它。我曾想过这样做,但它给了我一个错误Django 生成属性参数值的模型方法,django,django-models,django-rest-framework,Django,Django Models,Django Rest Framework,我想在模型内创建一个方法,可以对属性的参数调用该方法来填充它。我曾想过这样做,但它给了我一个错误NameError:name'self'没有定义 类主机(用户): 类元: 详细名称=“主机” 详细名称 def gen_路径(自身): 路径='static/{userdir}'。格式(userdir=self.email) os.mkdir(路径) 返回路径 hostpic=models.ImageField(verbose_name='Host Profile Image',upload_to=
NameError:name'self'没有定义
类主机(用户):
类元:
详细名称=“主机”
详细名称
def gen_路径(自身):
路径='static/{userdir}'。格式(userdir=self.email)
os.mkdir(路径)
返回路径
hostpic=models.ImageField(verbose_name='Host Profile Image',upload_to=self.gen_path(),null=True)
有什么解决办法吗?尝试使用以下方法:
您应该插入文件夹名称以保存图像,如:-
hostpic = models.ImageField(verbose_name='Host Profile Image', upload_to='hostimages', null=True)
您可以创建将
实例
和文件名
作为上传到
属性的参数的方法
def gen_path(instance, filename):
extension = filename.split(".")[-1]
filename = f"{instance.email}.{extension}"
return f"static/{filename}"
class Host(User):
hostpic = models.ImageField(verbose_name='Host Profile Image', upload_to=gen_path, null=True)
class Meta:
verbose_name = "Host"
verbose_name_plural = "Hosts"
有关详细信息否,我需要动态保存路径。