我有一个模型 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输入的类型。从相机'到特定图像。
还尝试了ImageField和
'foto': forms.FileInput(attrs={'capture': 'camera'}),
我想要的是纯粹的html:
<input type="file" capture="camera" accept="image/*">
答案 0 :(得分:0)
camera
不是有效的HTML,用于type
元素的input
属性的值。
如果您确实将其更改为<input type="camera" name="a-name-here" value="some-value">
,那么Chrome和FF会将其作为文本输入呈现,而您的ProvaForm
需要一个文件(ImageField
),从而导致失败验证。当然你可以通过写自己的一个来覆盖验证部分,但是从一开始就使用ImageField
是什么意思,而不是这个字段将被渲染为文本?
检查here,了解type
元素的input
属性的可能值。