【问题标题】:Conditionally Show Form Elements in Django在 Django 中有条件地显示表单元素
【发布时间】:2025-12-04 17:00:01
【问题描述】:

我正在处理一个小型 Django 项目,对于一个表单,我想捕获登录者的详细信息。有一个单选选项,其值为“Student”或“ 行业'。如果选择了学生,我希望显示两个输入框,一个用于“毕业年份”,另一个用于“大学名称”。如果选择了“Industry”,我需要 2 个文本框,一个用于“Company name”,另一个用于“Job title”。

现在,我可以使用 jQuery 来隐藏不需要的文本框并将更改侦听器附加到单选按钮上。但是,有没有一种 django 方法可以做到这一点?现在,我的模型有:

name - 两种情况通用 student_or_industry - 选择字段 职称 公司名 大学 毕业年份

我的表单是使用简单的 ModelForm 创建的,这会导致表中出现大量 NULL。我应该为学生和行业创建不同的模型并将它们与外键链接吗?如果是,这与表格有何联系?我要创建多个表单吗?

提前致谢

【问题讨论】:

    标签: jquery python django forms


    【解决方案1】:

    将其分成 2 个单独的模型(学生、行业)不会有问题,如果您将来需要为每个单独的模型添加更多字段,它实际上会有所帮助。 由于一个人只能属于 1 所大学或 1 个行业,因此您的查询也无需太多额外开销。 您的初始方法也没有错,但是您需要考虑将来是否需要向相关模型添加其他信息,例如,如果您需要添加课程或部门,那么您就会开始重载初始模型。

    【讨论】:

      最近更新 更多