我有一个模特:
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
,那么它可以正常工作。我找不到问题所在。
非常感谢任何帮助。
答案 0 :(得分:0)
问题原来是将request.POST
和request.FILES
传递给from的顺序。 request.POST
必须先行。