【问题标题】:Changing The Appearance of a Django Form Based on a Condition Before The Form Loads在表单加载之前根据条件更改 Django 表单的外观
【发布时间】:2014-03-12 19:22:17
【问题描述】:

我对 Django 很陌生,所以如果我的问题看起来很幼稚,请多多包涵。

如何在表单加载之前根据条件更改表单的值? 例如,如果有一个名为“Admin”的表单复选框字段,并且用户是管理员,我想知道如何在表单加载之前检查该复选框字段。我应该将此逻辑添加到调用表单的视图中还是将其添加到表单类中?

我使用的是 Django 1.4。

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    您在初始化表单对象之前在视图中检查它。

    if request.user.is_superuser:
      initial = {'checkboxfields_name':True}
    else:
      initial = {'checkboxfields_name':False}
    
    form = YourForm(request.POST, initial = initial) if request.method == 'POST' else YourForm(initial = initial)
    

    我猜是这样的。

    【讨论】:

    • 甚至form = YourForm(request.POST or None, initial = initial)
    • @karthikr 如果我们在玩 Code Golf form = YourForm(request.POST or None, initial={'checkboxfields_name': request.user.is_superuser}) ;-)
    猜你喜欢
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多