首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-models:选项,选择,小部件如何更改小部件的默认选项

Django-models:选项,选择,小部件如何更改小部件的默认选项
EN

Stack Overflow用户
提问于 2012-09-27 17:10:15
回答 2查看 2.4K关注 0票数 0

我对模型有问题,例如我有

代码语言:javascript
复制
fallBack = models.CharField(max_length=100, choices=FALLBACK,  default = 99,blank = True,null = True)
FALLBACK = (
    (u'99','-'),
    (u'standard', u'Standard TPF deactivation/exlusion applies'),
    (u'fallback', u'Fallback script provided'),
    (u'na',u'N/A'),
    (u'other',u'Other'),
    )

如果我将在模板中使用

代码语言:javascript
复制
{% for obj in form.forms %}
    {{obj.fallBack}}
{% endfor %}

它会像这样返回一些东西

代码语言:javascript
复制
<select name="form-0-fallBack" id="id_form-0-fallBack">
    <option value="">---------</option>
    <option value="99" selected="selected">-</option>
    <option value="standard">Standard TPF deactivation/exlusion applies</option>
    <option value="fallback">Fallback script provided</option>
    <option value="na">N/A</option>
    <option value="other">Other</option>
</select>

但我想做这样的东西:

代码语言:javascript
复制
<select **onchange="javascript:make()"** name="form-0-fallBack" id="id_form-0-fallBack">
    <option value="">---------</option>
    <option value="99" selected="selected">-</option>
    <option value="standard">Standard TPF deactivation/exlusion applies</option>
    <option value="fallback">Fallback script provided</option>
    <option value="na">N/A</option>
    <option value="other">Other</option>
</select>

如何做到这一点?我可以在模板中写这个第二个选项,而不是{{obj.fallBack}},但是我的formset.is_valid()不起作用,什么时候我会这样做:

代码语言:javascript
复制
1)I will choose from fallBack second option(Standard TPF deactivation/exlusion applies) 
2) submit,
3) I have some error in other place in template 
4) Then my obj.fallBack returning to default option (99 , -) 

感谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-27 21:45:35

好的,用这个属性创建新的Field而不是charfield

代码语言:javascript
复制
widget=forms.Select(attrs={'onchange': 'javascript:make()'})

感谢你的帮助

票数 0
EN

Stack Overflow用户

发布于 2012-09-27 19:01:45

查看Widgets上的django文档

代码语言:javascript
复制
widget=forms.Select(attrs={'onchange': 'javascript:make()'})

这看起来像一个ModelForm,看看如何为ModelForms指定小部件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12617863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档