【问题标题】:django dynamic form value based on foreign key基于外键的django动态表单值
【发布时间】:2012-12-08 14:36:11
【问题描述】:

希望每个人都享受假期! :)

我可以在 django 中创建一个表单,其中所有其他字段(ForeignKey、CharField 等)的默认值取决于单个字段的值,即 ForeignKey(在下拉字段中选择的值)?

这是我的场景:

  • 国家/地区 = [US、DE、CH 等](外键)
  • 语言 = [英语、德语、普通话等](外键)
  • 我的未来表单将包含以下字段:国家/地区、语言
  • 我希望根据用户选择的国家/地区自动更改语言。但是,用户应该能够将其更改为上面列出的任何选项。

提前感谢您!圣诞快乐!

【问题讨论】:

  • 您希望这发生在客户端还是服务器端?
  • 如果你想实现这个服务器端,你可以覆盖你的模型的保存方法,当语言为无时根据国家填充语言字段(抱歉没有正确的答案,但它是很难用我的手机写代码:=)
  • 如果这发生在服务器端,您需要解决您希望如何保存数据的问题。在条件下获取它不是问题。
  • 我希望这发生在客户端。 django 功能可以帮助我吗?
  • 另外,感谢 furins 和 Rickard 的回答。我真的很感激。我被这个问题困扰了很长时间,无法继续。

标签: django forms dynamic


【解决方案1】:

据我了解,您希望在客户端实现这一目标,恐怕 django 功能无法在客户端为您提供帮助。您需要依赖客户端语言,例如 javascriptjQuery

我建议你看看jquery-related-selects 来实现你想要的。在服务器端,您可以使用initial 方法设置字段的初始数据和/或通过覆盖表单的__init__()save() 方法来操作数据(如果您已经传递了一个实例到表格)。

在表单被渲染之前,您可以使用 django 做很多事情,但是一旦表单被渲染,您需要处理client-side 上的内容,直到您将数据发布[传递]回 django .

继续编码,并有一个美好的一年!

【讨论】:

    猜你喜欢
    • 2017-02-22
    • 2016-04-22
    • 2016-01-08
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 2012-10-19
    相关资源
    最近更新 更多