假设我有一堂课:
imageModel(models.Model):
O1 = 'Option1'
O2 = 'Option2'
CHOICES = (
(O1, 'Option1'),
(O2, 'Option2'),
)
options = models.CharField(max_length=50, choices=CHOICES)
image = models.ImageField()
如何根据选项选择动态设置图像字段的默认值?
我尝试了类似的东西:
imageModel(models.Model):
O1 = 'Option1'
O2 = 'Option2'
CHOICES = (
(O1, 'Option1'),
(O2, 'Option2'),
)
options = models.CharField(max_length=50, choices=CHOICES)
image = models.ImageField()
def get_default_image(self):
super().save()
img = Image.open(self.company_logo.path)
if self.options == "Option1":
img.default = "/static/img/option1img.jpg"
elif self.options == "Option2":
img.default = "/static/img/option2img.jpg"
img.save(self.image.path)
但这没有用。
答案 0 :(得分:0)
图片好像是静态的,只有两张图片,可能有很多记录只有这两张可能的图片。
我建议你做如下事情
imageModel(models.Model):
O1 = 'Option1'
O2 = 'Option2'
CHOICES = (
(O1, 'Option1'),
(O2, 'Option2'),
)
options = models.CharField(max_length=50, choices=CHOICES)
如果代码在 admin.py
from django.utils.safestring import mark_safe
@classmethod
def thumbnail(self, obj):
if obj.options == "option1":
return mark_safe(
'<img src="/static/img/option1img.jpg" width="75" height="auto" >'
)
else:
return mark_safe(
'<img src="/static/img/option2img.jpg" width="75" height="75" >'
)