django 表单自定义 attrs 小部件 imagefield
django form custom attrs widget imagefield
我有一个模型 Prova:
class Prova(models.Model):
id = models.AutoField(primary_key=True)
codice= models.TextField(blank=True, null=True)
foto = models.ImageField(upload_to='stati/uploads/', blank=True)
这是形式:
class ProvaForm(forms.ModelForm):
class Meta:
model = models.Prova
fields = ('codice','foto',)
widgets = {
'codice': forms.Textarea(attrs={'rows':1, 'cols':15,
'autofocus':'autofocus',
}),
'foto': forms.ClearableFileInput(attrs={'type': 'camera'}),
}
codice 字段的自定义有效,但 foto 无效。
我想将 html 输入的类型从 'file' 更改为特定图像从 'camera'。
还尝试了 ImageField 和
'foto': forms.FileInput(attrs={'capture': 'camera'}),
我缺少什么才能像纯粹的那样html:
<input type="file" capture="camera" accept="image/*">
camera
对于 input
元素的 type
属性的值 无效 HTML。
如果您确实将其更改为 <input type="camera" name="a-name-here" value="some-value">
,则 Chrome 和 FF 会将其呈现为文本输入,而您的 ProvaForm
需要一个文件(ImageField
),导致验证失败。当然,您可以通过编写自己的验证部分来覆盖验证部分,但是如果此字段将呈现为文本,那么从一开始就使用 ImageField
有什么意义?
检查 here 以获得 input
元素的 type
属性的可能值。
我有一个模型 Prova:
class Prova(models.Model):
id = models.AutoField(primary_key=True)
codice= models.TextField(blank=True, null=True)
foto = models.ImageField(upload_to='stati/uploads/', blank=True)
这是形式:
class ProvaForm(forms.ModelForm):
class Meta:
model = models.Prova
fields = ('codice','foto',)
widgets = {
'codice': forms.Textarea(attrs={'rows':1, 'cols':15,
'autofocus':'autofocus',
}),
'foto': forms.ClearableFileInput(attrs={'type': 'camera'}),
}
codice 字段的自定义有效,但 foto 无效。 我想将 html 输入的类型从 'file' 更改为特定图像从 'camera'。
还尝试了 ImageField 和
'foto': forms.FileInput(attrs={'capture': 'camera'}),
我缺少什么才能像纯粹的那样html:
<input type="file" capture="camera" accept="image/*">
camera
对于 input
元素的 type
属性的值 无效 HTML。
如果您确实将其更改为 <input type="camera" name="a-name-here" value="some-value">
,则 Chrome 和 FF 会将其呈现为文本输入,而您的 ProvaForm
需要一个文件(ImageField
),导致验证失败。当然,您可以通过编写自己的验证部分来覆盖验证部分,但是如果此字段将呈现为文本,那么从一开始就使用 ImageField
有什么意义?
检查 here 以获得 input
元素的 type
属性的可能值。