django中ImageField的属性是什么?

时间:2018-07-21 10:27:45

标签: django django-models django-forms django-templates

我已经创建了一个带有部分modelForm的userUpdate视图,以更新由imageField组成的用户数据。

模板中的表单如下:

<div class='field'>{{ form.photo.label_tag }} {{ form.photo}}</div>

photoimageField

呈现的html视图为:

enter image description here

但是

  • 我不想清除复选框。
  • 如果模型实例存在一个URL,如何获取当前图像的URL?
  • photo的所有属性是什么?因此,我可以根据需要单独使用它们。

1 个答案:

答案 0 :(得分:1)

清除复选框

您需要将小部件从with option (maxrecursion 0)更改为ClearableFileInput

Fileinput
  

默认的FileField小部件为# forms.py from django.forms.widgets import FileInput class UserForm(forms.ModelForm): class Meta: model = User fields = '__all__' widgets = { 'photo': FileInput(), } 。   https://docs.djangoproject.com/en/dev/ref/forms/widgets/#file-upload-widgets


或者,您可以为ClearableFileInput类型字段手动呈现HTML。

file

获取当前图像的URL(如果存在模型实例)

您可以使用<div class="field"> <!-- show label of field --> {{form.photo.label_tag}} <!-- check for input type --> {% if form.photo.field.widget.input_type == 'file'%} <a href="{{ MEDIA_URL }}{{ form.photo.value }}">{{ form.photo.value }}</a><br/> <input type="file" name="{{ form.photo.name }}" /> {% endif %} </div> 运算符获取当前图片的网址

.
# URL of the image photo.url # name of the image photo.name

属性

ImageField继承了ImageField的所有属性和方法,但还验证了上传的对象是有效的图像。

除了FileField可用的特殊属性外,ImageField还具有FileFieldheight属性。

  

阅读官方docs以获得所有属性的列表