2013-05-16 51 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必须先走。