访问Django表单中的排除字段的干净方法

时间:2017-01-28 21:02:45

标签: django forms

想象一下,我们有一个Django ORM模型,我们称之为MyModel,它是各自的形式,我们称之为MyForm。另外,让我们假设MyModel中有一个字段已从MyForm中排除。我们称这个字段为excluded_field。问题是,当我们必须在表单验证期间使用excluded_field时,我们如何处理这种情况(意思是表单的clean方法)? 我喜欢按照doc建议的形式cleanfield_name_clean方法封装用户输入验证和相应的自定义错误消息,因为将所有业务逻辑移动到表单使我的视图优雅而简单,整个代码DRY。 / p>

具体来说,请考虑以下代码:

型号:

class MyModel(models.Model):
        # ...some fields
        excluded_field = models.CharField()
        class Meta:
            managed = False
            db_table = 'my_model'

各自的表格:

class MyForm(forms.ModelForm):

   def clean(self):
        # how do I access excluded_field here ?

有人可能会问我为什么要从表格中排除这个字段?嗯,这是因为该字段的值是以编程方式生成的,并且用户不会 - 也不应该 - 知道有关其值的任何信息。

所以,问题是,如果我们需要用于用户输入验证,我们是否可以访问表单clean方法中的排除字段,或者对于这种情况,我们必须组织用户输入验证在视图中使用模型实例而不是表单?

0 个答案:

没有答案