我有以下字段:
photo = models.ImageField(null=True,blank=True,upload_to="product_images")
我在forms.py
为此字段定义了以下布局:
self.fields['photo'].label = "Asset Image"
self.helper.layout = Layout(
'photo',
HTML("""{% if form.photo.value %}
<img height="80"
width="160"
class="pull-left"
src="{{ MEDIA_URL }}{{ form.photo.value }}">
{% endif %}""", ),
现在我可以上传与此特定字段关联的图片。但是,当我尝试更新图像时,我在模板中看到以下内容:
有什么方法可以更改布局,以便在图像字段不为空时只显示浏览按钮和现有图像?换句话说,请删除文字Currently: product_images/km_2.jpeg Clear Change:
答案 0 :(得分:0)
我非常确定ImageField
使用ClearableFileInput
来呈现HTML。
所以要摆脱&#34;目前:......清除&#34;您需要继承ClearableFileInput
并修改template_with_clear
和/或template_with_initial
成员的内容。
from django.forms import ClearableFileInput
class MyClearableFileInput(ClearableFileInput):
template_with_initial = '%(input_text)s: %(input)s'
随后您使用MyClearableFileInput
,例如:
class MyForm(ModelForm):
class Meta:
model = MyModel
widgets = {
"file": MyClearableFileInput(),
}
我使用FileField
对此进行了测试,但我非常确定它也适用于ImageField
。