2014-05-13 77 views
2

錯誤我是新Django上,我使用Django 1.6.1,並在我的形式之一,我得到了一個錯誤此欄位必填。用的ImageField和FileField或Django上

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() 

我沒有的線索,爲什麼我得到這樣一個錯誤。

回答

1

首先,在你的模型讓你的字段爲空,併爲空的:

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 

模型部分,但是,強制性的。否則,您可能會收到數據庫不一致錯誤。

請記住,blanknull是不同的東西。但是,他們確實一起工作,應該給你想要的東西。

+0

感謝。現在它工作正常 – newbieProgrammer

0

在forms.py

class campoImagenForm(forms.ModelForm): 
    imagen = forms.ImageField(verbose_name='Imagen', upload_to='archivos', required = False) 
    class Meta: 
     model = campoImagen 
     fields = ('imagen',) 
相關問題