【问题标题】:Python/Django Model overriding the cleaned data覆盖已清理数据的 Python/Django 模型
【发布时间】:2009-11-10 15:25:55
【问题描述】:

您好,我目前正在开发一个 django 项目,在我的一个模型中,我有一个文件上传和图像上传,这两个字段的参数都设置为空白 = True,但是有一个规定和如果两者之一不存在,则该字段只能为空白,例如,如果图像字段完整,则用户不必上传文件,如果文件字段完整,则用户无需上传文件图片。

我的问题是我很难弄清楚逻辑,这是在管理部分,所以我知道我将覆盖干净的数据。有人可以帮忙吗?

【问题讨论】:

  • 已完成,即 POST 中有一个条目

标签: python django model-view-controller django-models django-forms


【解决方案1】:

您只需要在 ModelForm 上定义一个自定义 clean() 方法来检查是否填充了一个或两个字段。

def clean(self):
    file_field = self.cleaned_data.get('file_field')
    image_field = self.cleaned_data.get('image_field')

    if file_field and image_field:
        raise forms.ValidationError("You should only provide one of File or Image")
    elif not file_field and not image_field:
        raise forms.ValidationError("You must provide either File or Image")

    return self.cleaned_data

【讨论】:

  • 谢谢,虽然我想我错过了,文件和图像可以一起上传,我想这会改变一些什么条件?
  • 好的,那么就删除第一个if
猜你喜欢
  • 2016-06-14
  • 2010-11-19
  • 2011-08-06
  • 2012-10-18
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
  • 2018-03-07
  • 2018-10-07
相关资源
最近更新 更多