首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django forms.Choicefield获选

Django forms.Choicefield获选
EN

Stack Overflow用户
提问于 2015-08-26 13:39:59
回答 1查看 2.8K关注 0票数 0

我需要为if/ forms.Choicefield语句获取一个forms.Choicefield的选定值,该语句根据所选的值生成另一个forms.Choicefield

代码语言:javascript
复制
forms.py:

class ReceiverForm(forms.Form):
receivers = forms.ChoiceField(choices=db_mails(), required=True, label='Receivers')

if db_certs(<- selected value from receivers ChoiceField ->):
    print "cert found"
    encryption = forms.ChoiceField(choices=EncryptionChoiceAll, initial='smime_mail', required=True, label='Encryption')
else:
    print "no cert found"
    encryption = forms.ChoiceField(choices=EncryptionChoiceNoCert, initial='smime_mail', required=True, label='Encryption')

db_mails()db_certs(mail)正在按预期工作

是否有一种方法可以实现我在forms.py中需要的东西,还是我的设计完全错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-26 14:50:12

生成表单并指定选择列表时,您无法知道选择了哪个值,如下所示:

  1. 创建窗体类的实例。
  2. 此实例用于创建视图(在GET请求上)。用户可以修改所选内容。
  3. 他提交了表格。为此,您创建了类的实例,该类中填充了POST值。

因此,在创建类时,您没有这些信息。

根据另一种选择,有可能在一种选择中具有动态值,但当用户更改所选内容时,需要在客户端这样做:

  • 使用javascript/jquery根据答案更新选项列表。为此,您可以在HTML文件中包含隐藏值,Javascript将从这些隐藏值中更新列表。
  • 如果要更新的选择更动态(例如,取决于邮政编码的城镇列表),则仍然需要使用Javascript,但是使用Ajax将向服务器发送异步请求以获取列表并更新选择。

有很多教程可以这样做,而且这不是直接链接到Django的。例如:

https://css-tricks.com/dynamic-dropdowns/

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

https://stackoverflow.com/questions/32228280

复制
相关文章

相似问题

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