2013-05-16 40 views
0

我有一個模型:Django imageField無法驗證 - 爲什麼?

class PartnerPrefs(models.Model): 
    partner = models.ForeignKey(Partner) 
    theme = models.IntegerField() 
    email = models.EmailField() 
    logo_file = models.ImageField(upload_to='logos/') 

而且我的形式:

class PartnerPrefsForm(ModelForm): 

    theme = forms.ChoiceField(
     choices=THEME_CHOICE, 
     widget=forms.Select(), 
     initial='1', 
    ) 

    class Meta: 
     model = PartnerPrefs 
     exclude = ('partner',) 

而我的觀點:

... 
if request.method == 'POST': 
    prefsform = PartnerPrefsForm(request.FILES, request.POST) 
    if prefsform.is_valid(): 
     # do stuff 

最後我的模板:

<form enctype='multipart/form-data' form action='.' method='post'> 
    {% csrf_token %} 
    {{ prefsform.as_p }} 
<input type="submit" value="Submit" /> 
</form> 

每當我蘇bmit表格全部返回This field is required...。如果我從表單中刪除ImageField,那麼它工作正常。我找不到問題所在。

任何幫助在這裏將不勝感激。

+2

Arghh。結果'request.POST'的順序,'request.FILES'很重要!反轉他們,它的作品。衛生署! –

+0

你應該回答你自己的問題,所以它在這裏供將來參考(並且不顯示爲未答覆) – Greg

回答

0

問題原來是request.POSTrequest.FILES傳遞給from的順序。 request.POST必須先走。