2012-12-05 38 views
0

我有一個基於圖片的ModelForm。Django ModelForm給我一個沒有意義的驗證錯誤

class Picture(models.Model): 
    name = models.CharField(max_length=100) 
    pub_date = models.DateTimeField('date published') 
    tags = models.ManyToManyField('Tag', blank=True) 
    content = models.ImageField(upload_to='instaton') 

    def __unicode__(self): 
     return self.name 

class PictureForm(forms.ModelForm): 
    class Meta: 
     model = Picture 
     exclude = ('pub_date','tags') 

這是模型和ModelForm當然。

def submit(request): 
    if request.method == 'POST': # if the form has been submitted 
     form = PictureForm(request.POST) 
     if form.is_valid(): 
      return HttpResponseRedirect('/django/instaton') 
    else: 
     form = PictureForm() # blank form 
    return render_to_response('instaton/submit.html', {'form': form}, context_instance=RequestContext(request)) 

,自己目前的觀點(這是由urls.py被正確連接)

,我一籌莫展的時候,表單提交。我只是檢查以確保它是有效的。如果是這樣,我轉發到應用程序的主頁面。

<form action="/django/instaton/submit/" method="post"> {% csrf_token %} 
{{ form.as_p }} 
<input type="submit" value"Submit" /> 
</form> 

還有我的模板(在正確的位置)。

當我嘗試實際填寫表格並僅對其進行驗證時,即使我正確執行此操作,它也會將我發回表單並在名稱和內容之間顯示「此字段是必需的」。我認爲它是指內容,但我不確定。

我的問題是什麼?有一個更好的方法嗎?

回答

2

您需要在您的形式

form = PictureForm(request.POST, request.FILES) 
+0

輝煌的文件,謝謝。 –