首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django表单:一个选择字段是其他选择字段的子集。如何动态改变子集?

Django表单:一个选择字段是其他选择字段的子集。如何动态改变子集?
EN

Stack Overflow用户
提问于 2012-03-01 07:10:15
回答 1查看 490关注 0票数 0

我有表单,其中用户选择机场,然后可以选择一个机场终点站(一个到多个关系通过ForeignKey)。

航站楼场地的选择必须受选定机场航站楼的限制。

有什么共同的方法来实现这一点吗?

我现在在看ajax过滤字段库,但也许还有其他的方法.

感谢奇科!这里还有一个从数据库模型创建数据父属性的链接:小部件呈现中的自定义属性

但是在我的例子中,添加数据父属性的解决方案更简单:

  1. 继承select小部件属性并添加新信息: 类TerminalSelect(forms.Select):terminal_ports={} def render_option(self,selected_choices,option_value,option_label):如果option_label in self.terminal_ports.keys():airport=self.terminal_portsoption_label airport=self.terminal_portsoption_label:airport=“option_value = force_unicode (option_value ) selected_html =(Option_value in selected_choices)和u‘selected=”选择’或‘返回u’%s”‘%(机场,逃逸(Option_value),selected_html,selected_html
  2. 创建表单时填写终端端口字典: airport=forms.ModelChoiceField(queryset=airports_queryset) terminals_queryset=AirportTerminal.objects.all() terminal_ports={}用于terminals_queryset终端: terminal_portsforce_unicode(terminal.name)=force_unicode(terminal.airport.name) terminal_select_widget=TerminalSelect() terminal_select_widget.terminal_ports=terminal_ports terminal=forms.ModelChoiceField(queryset=terminals_queryset,widget=terminal_select_widget)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-01 07:13:23

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

https://stackoverflow.com/questions/9512037

复制
相关文章

相似问题

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