Django 1.7 Admin Form Clean():如何首先验证必填字段

时间:2015-05-06 15:03:56

标签: django python-3.x django-1.7

我试图通过覆盖表单clean()方法来验证管理表单。我遇到的问题是在模型字段验证之前似乎调用了clean()方法。如果未提供所需数据,或者数据输入不正确,则清理数据毫无意义。在清理数据之前,如何让django验证字段?

Django 1.7,python 3.4

model.py:

class ElectricityBill(models.Model):
    rate = models.ForeignKey(ElectricityRate, blank = False) # This field should be required in the admin form

admin.py:

class ElectricityBillForm(forms.ModelForm):
    class Meta:
        model = ElectricityBill

    def clean(self):
        #self.validate_fields() - Something like this?
        rate = self.cleaned_data.get("rate") # Returns None if rate is left blank.

如果rate为None,我想避免清理数据。否则我会检查很多If语句的Non语句。这也是一个难以管理,因为如果我添加了更多必填字段,或者取出了必填字段,我就必须编辑我的干净方法。

编辑:

解决方法:

class ElectricityBillForm(forms.ModelForm):
    class Meta:
        model = ElectricityBill

    def clean(self):
        #self.validate_fields() - Something like this?
        rate = self.cleaned_data.get("rate") # Returns None if rate is left blank.
        if rate == None:
            return
        #Continue cleaning

这太糟糕了。它似乎有效,因为它会跳过其余的清理并导致模型验证运行。但是,以后管理会很痛苦。

0 个答案:

没有答案