Django ModelForms 忽略了一个干净的字段方法

用户3541631

我有以下模型,其中有一个 DateField:

class E(models.Model):

    name = models.CharField(max_length=255
    description = models.TextField(max_length=255)
    start_date = models.DateField(verbose_name='Start Date')

模型形式:

class EventModelForm(forms.ModelForm):
    class Meta:
        model = Event
        fields = ['name', 'description','start_date']


    def clean_start_date(self):

       datetime_format = '%a %b %d %Y'
       start_date = self.cleaned_data['start_date']
       return datetime.strptime(start_date, datetime_format)

我的问题是 Django 忽略了 start_date 的 clean 方法,但考虑了其他字段的 clean 方法。

所以我使用调试器来检查,我看到它出现在 中change_data,但没有出现cleaned_data

changed_data: <class 'list'>: [name', 'description', ''start_date']
cleaned_data: name, description

这很奇怪,所以我检查了输入,看起来没问题:

<input name="start_date" class="c-fi' type="text">

我不明白为什么不调用 clean 方法,而是对模型 a 进行验证失败,所以这就是为什么我需要 clean 在保存之前更改日期格式。

阿拉斯代尔

如果要更改 的日期格式DateField,则应input_formats改为设置

class EventModelForm(forms.ModelForm):
    start_date = forms.DateField(
        verbose_name='Start Date',
        input_formats=['%a %b %d %Y'],
    )

class Meta:
    model = Event
    fields = ['name', 'description','start_date']

由于您没有在字段中包含自定义格式,因此该字段本身会引发验证错误,因此该clean_start_date方法永远不会运行。您可以在 docs 中阅读有关验证顺序的更多信息请注意,您不必strptime在 a 的clean_*方法中运行DateField- 到cleaned_data那时,in 中的值已经是一个日期。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django ModelForms:在表单中植入FK相关字段

来自分类Dev

如何在Django的ModelForms表中正确提交一个表单?

来自分类Dev

Django:在Modelforms中使用ImageField

来自分类Dev

如何在一个Django表单工具WizardView中保存具有多个modelForms的多个模型

来自分类Dev

如何将类添加到Django ModelForms文件字段

来自分类Dev

Django Modelforms:如何显示CharField的选择?

来自分类Dev

Django:向 ModelForms 添加默认值

来自分类Dev

在ModelForms中获取用户OneToOneField字段

来自分类Dev

Django ModelForms __init__ kwargs创建和更新

来自分类Dev

如何在Django ModelForms中编写占位符?

来自分类Dev

如何将活动用户传递给Django ModelForms

来自分类Dev

Django:ModelForms:ImageField始终为空,并被ModelForm拒绝

来自分类Dev

POST 请求中的 Django ModelForms 和普通表单

来自分类Dev

如何在Django中适当地测试ModelForms和视图

来自分类Dev

如何在Django 1.6中使用ModelForms避免“记录已存在”表单验证错误?

来自分类Dev

如何在整个查询集上初始化 Django ModelForms?

来自分类Dev

无法弄清楚如何使用不同的前缀 django 创建多个 Modelforms

来自分类Dev

将另一个服务集成到Django的干净方法是什么

来自分类Dev

如何从ModelForms检索必要的字段并将其正确传递给views.py?

来自分类Dev

Django中的modelforms是否要求表单具有Forms.fieldtype格式?form.save()无法用于多重上传

来自分类Dev

Django ModelForms-使用中间模型测试具有M2M内联实例的模型的表单

来自分类Dev

从Django的视图中忽略一个参数?

来自分类Dev

django模型方法表现得像一个字段

来自分类Dev

django模型:将多行线地址存储为一个模型字段的好方法

来自分类Dev

Django仅从模型添加一个字段

来自分类常见问题

Django注释另一个模型的字段值

来自分类Dev

Django仅从模型添加一个字段

来自分类Dev

Django用户会话中的最后一个活动字段

来自分类Dev

Django 一个字段中的多个文件

Related 相关文章

  1. 1

    Django ModelForms:在表单中植入FK相关字段

  2. 2

    如何在Django的ModelForms表中正确提交一个表单?

  3. 3

    Django:在Modelforms中使用ImageField

  4. 4

    如何在一个Django表单工具WizardView中保存具有多个modelForms的多个模型

  5. 5

    如何将类添加到Django ModelForms文件字段

  6. 6

    Django Modelforms:如何显示CharField的选择?

  7. 7

    Django:向 ModelForms 添加默认值

  8. 8

    在ModelForms中获取用户OneToOneField字段

  9. 9

    Django ModelForms __init__ kwargs创建和更新

  10. 10

    如何在Django ModelForms中编写占位符?

  11. 11

    如何将活动用户传递给Django ModelForms

  12. 12

    Django:ModelForms:ImageField始终为空,并被ModelForm拒绝

  13. 13

    POST 请求中的 Django ModelForms 和普通表单

  14. 14

    如何在Django中适当地测试ModelForms和视图

  15. 15

    如何在Django 1.6中使用ModelForms避免“记录已存在”表单验证错误?

  16. 16

    如何在整个查询集上初始化 Django ModelForms?

  17. 17

    无法弄清楚如何使用不同的前缀 django 创建多个 Modelforms

  18. 18

    将另一个服务集成到Django的干净方法是什么

  19. 19

    如何从ModelForms检索必要的字段并将其正确传递给views.py?

  20. 20

    Django中的modelforms是否要求表单具有Forms.fieldtype格式?form.save()无法用于多重上传

  21. 21

    Django ModelForms-使用中间模型测试具有M2M内联实例的模型的表单

  22. 22

    从Django的视图中忽略一个参数?

  23. 23

    django模型方法表现得像一个字段

  24. 24

    django模型:将多行线地址存储为一个模型字段的好方法

  25. 25

    Django仅从模型添加一个字段

  26. 26

    Django注释另一个模型的字段值

  27. 27

    Django仅从模型添加一个字段

  28. 28

    Django用户会话中的最后一个活动字段

  29. 29

    Django 一个字段中的多个文件

热门标签

归档