我是Django的新手,我正在使用Django 1.6.1,在我的一个表单中我得到了下一个错误
This field is required.
我不明白为什么会收到此错误,我的表单非常基本,所以我的模型,发出此错误的声明是form.is_valid(),但我不知道为什么。 一些帮助将是apreciate。
我的观点是:
if request.method == 'POST':
form = campoImagenForm(request.POST, request.FILES)
if form.is_valid():
articulo = form.save(commit=False)
articulo.item = item
articulo.atributo = atributo
articulo.save()
return HttpResponseRedirect('/workproject/' + str(project.id))
我的表格是:
class campoImagenForm(forms.ModelForm):
class Meta:
model = campoImagen
fields = ('imagen',)
我的模特是:
class campoImagen(models.Model):
item = models.ForeignKey(ItemBase)
atributo = models.ForeignKey(TipoItem)
imagen = models.ImageField(verbose_name='Imagen', upload_to='archivos')
version = models.IntegerField()
我不知道为什么会出现这样的错误。
答案 0 :(得分:2)
首先,在您的模型中,将字段设为空并可为空:
class campoImagen(models.Model):
# [...]
imagen = models.ImageField(verbose_name='Imagen', upload_to='archivos', null=True, blank=True)
然后在您的模型表单中更改字段的required
参数:
class campoImagenForm(forms.ModelForm):
class Meta:
model = campoImagen
fields = ('imagen',)
def __init__(self, *args, **kwargs):
super(campoImagenForm, self).__init__(*args, **kwargs)
self.fields['imagen'].required = False
但是,模型部分是强制性的。否则,您可能会遇到数据库不一致错误。
答案 1 :(得分:0)
在forms.py
中class campoImagenForm(forms.ModelForm):
imagen = forms.ImageField(verbose_name='Imagen', upload_to='archivos', required = False)
class Meta:
model = campoImagen
fields = ('imagen',)