动态包含/排除Django ModelForm的Meta类中的字段

亚历山大堡

假设我的表单如下:

from django import forms

class Foo(forms.ModelForm):
    class Meta:
        model = SomeModel
        fields = ('field1', 'field2', 'field3')

如何根据某些条件包括或排除字段?

编辑:

不好的是,我应该澄清一下,需要根据要渲染的每个模型上的值来确定条件。这意味着我需要根据当前正在渲染的模型的值添加(或删除)字段。

埃隆德支持莫妮卡

您可以通过__init__以下方式修改表单字段

from django import forms

class Foo(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        if condition:
            self.fields.pop('field1')

    class Meta:
        model = SomeModel
        fields = ('field1', 'field2', 'field3')

请注意,如果需要该字段,这可能导致表单的验证失败。

更好的方法可能是隐藏字段,而不是完全删除它:

class Foo(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        if condition:
            form.fields['field1'].widget = forms.HiddenInput()

    class Meta:
        model = SomeModel
        fields = ('field1', 'field2', 'field3')

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django rest:动态包含或排除Serializer类字段

来自分类Dev

在Django REST框架序列化程序中动态排除或包含字段

来自分类Dev

在Django ModelForm中动态更改字段选择

来自分类Dev

无法在Django 1.4中的ModelForm中设置排除字段

来自分类Dev

Modelform Meta类中的Django 1.6 error_messages不起作用

来自分类Dev

验证 Django 2 中动态创建的 ModelForm 字段

来自分类Dev

如何在Django modelform中隐藏字段?

来自分类Dev

在CreateView中设置Django ModelForm的字段值

来自分类Dev

在ModelForm中排除字段

来自分类Dev

Django modelform-表单中的错误何时显示排除的字段并丢失翻译?

来自分类Dev

将类添加到表单字段Django ModelForm

来自分类Dev

Django 1.5 ModelForm中的“此字段不能为空”错误

来自分类Dev

Django:将ModelForm中的某些字段设为required = False

来自分类Dev

Django-访问模板中的modelform字段值

来自分类Dev

在Django 1.6中覆盖ModelForm字段错误消息

来自分类Dev

Django-验证modelform_factory中的禁用字段

来自分类Dev

在Django 1.6中覆盖ModelForm字段错误消息

来自分类Dev

在CreateView中为Django ModelForm设置字段的值

来自分类Dev

Django根据模型实例限制ModelForm中的ManyToMany字段的选项

来自分类Dev

如何用 TextInput 替换 Django ModelForm 中的 Choices 字段

来自分类Dev

使用 Django _meta.get_fields() 时如何排除字段

来自分类Dev

django cbv根据is_staff / is_superuser从表单动态排除字段

来自分类Dev

在Django包含标签中动态生成一个值

来自分类Dev

在django的meta类中排除什么意思?

来自分类Dev

从JPA中排除类中的字段

来自分类Dev

休眠注释以排除基类中的字段

来自分类Dev

Django中的动态模型字段

来自分类Dev

django modelform属性隐藏字段

来自分类Dev

在Python类中动态定义实例字段

Related 相关文章

  1. 1

    Django rest:动态包含或排除Serializer类字段

  2. 2

    在Django REST框架序列化程序中动态排除或包含字段

  3. 3

    在Django ModelForm中动态更改字段选择

  4. 4

    无法在Django 1.4中的ModelForm中设置排除字段

  5. 5

    Modelform Meta类中的Django 1.6 error_messages不起作用

  6. 6

    验证 Django 2 中动态创建的 ModelForm 字段

  7. 7

    如何在Django modelform中隐藏字段?

  8. 8

    在CreateView中设置Django ModelForm的字段值

  9. 9

    在ModelForm中排除字段

  10. 10

    Django modelform-表单中的错误何时显示排除的字段并丢失翻译?

  11. 11

    将类添加到表单字段Django ModelForm

  12. 12

    Django 1.5 ModelForm中的“此字段不能为空”错误

  13. 13

    Django:将ModelForm中的某些字段设为required = False

  14. 14

    Django-访问模板中的modelform字段值

  15. 15

    在Django 1.6中覆盖ModelForm字段错误消息

  16. 16

    Django-验证modelform_factory中的禁用字段

  17. 17

    在Django 1.6中覆盖ModelForm字段错误消息

  18. 18

    在CreateView中为Django ModelForm设置字段的值

  19. 19

    Django根据模型实例限制ModelForm中的ManyToMany字段的选项

  20. 20

    如何用 TextInput 替换 Django ModelForm 中的 Choices 字段

  21. 21

    使用 Django _meta.get_fields() 时如何排除字段

  22. 22

    django cbv根据is_staff / is_superuser从表单动态排除字段

  23. 23

    在Django包含标签中动态生成一个值

  24. 24

    在django的meta类中排除什么意思?

  25. 25

    从JPA中排除类中的字段

  26. 26

    休眠注释以排除基类中的字段

  27. 27

    Django中的动态模型字段

  28. 28

    django modelform属性隐藏字段

  29. 29

    在Python类中动态定义实例字段

热门标签

归档