【发布时间】:2018-03-12 11:06:31
【问题描述】:
我有一个很奇怪的问题:
当我在管理页面中为我的Custom 模型创建一个对象时,一切正常。但是,当我在网站的自定义表单中填写相同的输入时,它不起作用。
问题是file 字段:当我在网站的表单中输入一个有效文件时,它没有被保存,所以我得到一个验证错误(参见下面的 clean() 函数)。因为即使我上传文件也没有self.file。在管理页面中它可以工作。
哪里出错了?
背景:
这是我的Custom 模型:
# In my models.py
class Custom(models.Model):
file = models.FileField(max_length=45, upload_to=get_filepath, blank=True)
file_info = models.CharField(max_length=50, blank=True)
...
def clean(self):
if self.file_info and not self.file:
raise ValidationError("...")
这是我的自定义 CreateView:
class CustomCreate(CreateView):
model = Custom
form_class = CustomForm
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.user = self.request.user
self.object.save()
return super().form_valid(form)
【问题讨论】: