Django如何在单个modelForm中排除字段,仅用于updateview而不是createview?

MD 阿拉丁·阿明

我有一个像 UserForm 这样的表单类

class UserForm(forms.ModelForm):
   email=forms.EmailField(widget=forms.EmailInput(attrs={'class':'form-control','required': True}))
   password=forms.CharField(widget=forms.PasswordInput(attrs={'class':'form-control','required': True}))

   class Meta:
       model=User
       fields=['email','password']

和 2 视图 CreateView 和 UpdateView。

class UserCreate(CreateView):
    template_name='admin/user_crud_form.html'
    form_class=UserForm

    def get_success_url(self):
        return reverse('list_user')

class UserUpdate(UpdateView):
    template_name='admin/user_crud_form.html'
    form_class=UserForm
    exclude = ('password',)

    def get_success_url(self):
        return reverse('list_user')

现在我只需要排除密码字段进行编辑。我每次只更改电子邮件。但不是 password** 。

但在创建用户时,我将同时使用两者。如何??此代码不排除更新视图中的密码字段。** 我不想使用 2 个表单来创建和更新 **

提前致谢

安杰尼乌鲁巴塔505

您正在使用模型表单。因此,您可以覆盖该方法__init__试试下面的代码

class UserForm(forms.ModelForm):

   def __init__(self, *args, **kwargs):
       super(UserForm,self).__init__(*args, **kwargs)
       attrs={'class':'form-control','required': True}
       if self.instance and self.instance.pk:
            self.fields.pop('password', None)
       for field in self.fields.values():
           field.widget.attrs = attrs

   class Meta:
       model=User
       fields=['email','password']

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ModelForm中排除字段

来自分类Dev

如何在Django的Form验证中排除某些字段

来自分类Dev

如何从查询中排除未填充的Modelform字段

来自分类Dev

在CreateView中设置Django ModelForm的字段值

来自分类Dev

如何在Django modelform中隐藏字段?

来自分类Dev

如何从嵌套表示形式Django中排除字段?

来自分类Dev

RESTEasy + Jackson:如何在响应中排除字段?

来自分类Dev

如何在Django模型中排除相等的列?

来自分类Dev

如何在Django循环中排除项目?

来自分类Dev

如何在Django的CreateView中对字段进行排序?

来自分类Dev

如何从触发在整个表单(vanilla JS)中注册的 onchange 事件中排除单个字段?

来自分类Dev

Django CreateView ModelForm下拉字段queryset过滤器

来自分类Dev

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

来自分类Dev

如何从isDirty()检查中排除字段?

来自分类Dev

如何从RequestBody中排除字段-Swagger

来自分类Dev

如何从Drupal的缓存中排除字段?

来自分类Dev

如何在Django视图中访问ModelForm的字段

来自分类Dev

如何避免在ModelForm和CreateView类中重复字段列表?

来自分类Dev

如何避免在ModelForm和CreateView类中重复字段列表?

来自分类Dev

如何从渲染中排除Django表单字段,但仍将其保留以进行验证?

来自分类Dev

如何在LINQ-To-SQL中排除Contex.InsertOnSubmit()上的用户定义字段?

来自分类Dev

如何在cakephp3.0验证的编辑模式下从唯一验证中排除垂直字段

来自分类Dev

在Django-Rosetta中排除如何工作

来自分类Dev

如何从覆盖范围中排除Django库

来自分类Dev

如何在rsync中排除文件?

来自分类Dev

如何在grep中排除符号链接?

来自分类Dev

如何在SQL中排除特定记录?

来自分类Dev

如何在SQL中排除周末?

来自分类Dev

如何在Geb中排除测试?

Related 相关文章

  1. 1

    在ModelForm中排除字段

  2. 2

    如何在Django的Form验证中排除某些字段

  3. 3

    如何从查询中排除未填充的Modelform字段

  4. 4

    在CreateView中设置Django ModelForm的字段值

  5. 5

    如何在Django modelform中隐藏字段?

  6. 6

    如何从嵌套表示形式Django中排除字段?

  7. 7

    RESTEasy + Jackson:如何在响应中排除字段?

  8. 8

    如何在Django模型中排除相等的列?

  9. 9

    如何在Django循环中排除项目?

  10. 10

    如何在Django的CreateView中对字段进行排序?

  11. 11

    如何从触发在整个表单(vanilla JS)中注册的 onchange 事件中排除单个字段?

  12. 12

    Django CreateView ModelForm下拉字段queryset过滤器

  13. 13

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

  14. 14

    如何从isDirty()检查中排除字段?

  15. 15

    如何从RequestBody中排除字段-Swagger

  16. 16

    如何从Drupal的缓存中排除字段?

  17. 17

    如何在Django视图中访问ModelForm的字段

  18. 18

    如何避免在ModelForm和CreateView类中重复字段列表?

  19. 19

    如何避免在ModelForm和CreateView类中重复字段列表?

  20. 20

    如何从渲染中排除Django表单字段,但仍将其保留以进行验证?

  21. 21

    如何在LINQ-To-SQL中排除Contex.InsertOnSubmit()上的用户定义字段?

  22. 22

    如何在cakephp3.0验证的编辑模式下从唯一验证中排除垂直字段

  23. 23

    在Django-Rosetta中排除如何工作

  24. 24

    如何从覆盖范围中排除Django库

  25. 25

    如何在rsync中排除文件?

  26. 26

    如何在grep中排除符号链接?

  27. 27

    如何在SQL中排除特定记录?

  28. 28

    如何在SQL中排除周末?

  29. 29

    如何在Geb中排除测试?

热门标签

归档