【问题标题】:Django. Initial value of Choice Field dynamically姜戈。动态选择字段的初始值
【发布时间】:2015-12-15 02:22:00
【问题描述】:

我正在尝试在视图中动态设置选择字段的初始值。但它不起作用,不知道是什么问题:

views.py

...
form = FormEditGroup(initial={
            'choices_a': group.get_a(),
            'choices_i': group.get_i(),
            })

get_a() 是返回“open”或“close”的模型方法,get_i() 返回“admins”或“all”。

forms.py

class FormEditGroup(forms.Form):
    choices_a = (("closed", "Closed"), ("open", "Open"))
    choices_i = (("all", "All"), ("admins", "Admins"))

    a = forms.ChoiceField(... choices=choices_a),
    i = forms.ChoiceField(... choices=choices_i),

它没有将初始值设置为get_a()get_i() 返回的值。

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    您应该将initial 字典中的表单字段名称作为键传递。

    来自Form.initial上的文档

    这个参数,如果给定,应该是一个字典映射字段名称到 初始值。

    更改您的 'choices_a''choices_i' 键以分别形成字段名称 ai

    试试下面的代码:

    form = FormEditGroup(initial={
                'a': group.get_a(), # initial value for 'a'
                'i': group.get_i(),  # initial value for 'i'
                })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      • 2017-05-04
      • 1970-01-01
      • 2017-10-02
      • 2021-07-02
      • 1970-01-01
      相关资源
      最近更新 更多