繁体   English   中英

如何在 django forms.ChoiceField 中设置初始值?

[英]How to set initial values in django forms.ChoiceField?

我有简单的 django 形式:

class AddSymbolForm(forms.Form):
    list_n = forms.ChoiceField(choices=[(1,1), (2,2), (3,3)]) 

如何在 views.py 中设置初始值?

我尝试过这样的事情:

add_symbol_form = AddSymbolForm(initial={list_n:3})

这是行不通的。 那么有什么方法可以为选择字段设置初始值吗?

PS这很有趣,但是这段代码设置了正确的初始值

class AddSymbolForm(forms.Form):
    list_n = forms.ChoiceField(choices=[(1,1), (2,2), (3,3)], initial=3)

而这个不能正常工作:

class AddSymbolForm(forms.Form):
    list_n = forms.ChoiceField(choices=[(1,1), (2,2), (3,3)])
    list_n.initial = 3

默认情况下,选择列表的第一个元素将是初始表单值。 尝试这个:

class AddSymbolForm(forms.Form):
    list_n = forms.ChoiceField(choices=[(3,3),(1,1),(2,2)])

您可以在视图类的get_initial()中设置初始值,它来自FormMixin ,它是大多数通用视图的一部分

    def get_initial(self):
        initial = super().get_initial()
        initial['list_n'] = 3
        return initial

上面的示例具有硬编码值,但您应该从选项中进行choices和/或依赖其他条件的值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM