self.cleaned_data.get不使用整数字段

时间:2017-05-15 13:52:53

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

我在forms.py中有一个非常基本的定义来从我提交的表单中提取数据。我已经对其他应用程序做了些什么,但由于某种原因,它目前无法正常工作。我觉得我忽略了一些东西。每当我print(image_height)时,我都会None

models.py

height_field = models.IntegerField(default=1200)

forms.py

    class PostForm(ModelForm):

        class Meta:
            model = Post
            fields = ['user', 'title', 'content', 'post_image', 
                     'height_field', 'width_field', 'draft', 'publish']

        def clean_post_image(self):
            post_image = self.cleaned_data["post_image"]
            image_height = self.cleaned_data.get("height_field")
            print(image_height)


            return post_image

1 个答案:

答案 0 :(得分:0)

如果您想要根据其他字段验证表单字段,则应该使用干净的方法进行验证。

来自文档,

  

表单子类的clean()方法可以执行需要访问多个表单字段的验证。您可以在此处进行检查,例如“如果提供了字段A,则字段B必须包含有效的电子邮件地址”。如果愿意,此方法可以返回完全不同的字典,该字典将用作cleaning_data。

你可以这样做,

def clean(self, cleaned_data):
    post_image = cleaned_data.get("post_image")
    height_image = cleaned_data.get("height_image")
    #do_your_thing
    return cleaned_data