3 回答
TA贡献1784条经验 获得超9个赞
请参阅此处获取模型的字段。
要获取对象实例的字段,那么它应该是
def save(self, *args, **kwargs):
#### How can I alter here the ImageField parameters?
self.Thumbnail = #do whatever you want here
super().save(*args, **kwargs)
不可能在方法中更改字段的参数。它只能在字段定义中完成,因为必须先保存模型
TA贡献1851条经验 获得超3个赞
可以像普通实例变量一样使用 self 访问模型字段的实例。
例如在下面的模型类中,
class DummyModel(models.Model):
key = models.CharField()
value = models.TextField()
def save(self, *args, **kwargs):
value = self.value # self.value is a model field.
super().save(*args, **kwargs)
在您的情况下,您可以使用 self.Thumbnail 访问它
TA贡献1786条经验 获得超13个赞
由于在创建模型字段之前无法修改模型字段的参数,正如@azyCrw4282 在他的回答中所说,可以使用模型实例的名称创建一个目录并将解析函数的文件上传到upload_to
模型.py
def upload_to(instance, filename):
return 'user_course/{0}/{1}'.format(instance.name, filename) #instance.name will be the name of the course
class Course(models.Model):
name = model.CharField(...)
thumbnail = models.ImageField(upload_to=upload_to, ...)
添加回答
举报
