Django imageField没有验证 - 为什么?

时间:2013-05-16 23:14:07

标签: django django-forms django-views

我有一个模特:

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>

每当我提交表单时,所有字段都会返回This field is required...。如果我从表单中删除ImageField,那么它可以正常工作。我找不到问题所在。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

问题原来是将request.POSTrequest.FILES传递给from的顺序。 request.POST必须先行。