Django:使用小部件来限制 ModelForm 中的选择

2024-02-07

我的模型形式继承自子系统形式。 我想限制用户在表单中的选择。 (特别是名字) 我知道我必须使用小部件。但这不起作用。

我必须使用 SubsytemForm。

SUBSYSTEM_CHOICES = (a1,a2,a3)


class Subsystem(models.Model):
    name = models.CharField("Name", max_length=20)


class SubsytemForm(forms.ModelForm):   
    class Meta:
        model = Subsystem
        widgets = {
            'name': ChoiceField(widget=RadioSelect, choices=SUBSYSTEM_CHOICES)
        }

From Django 模型表单文档 https://docs.djangoproject.com/en/dev/topics/forms/modelforms/:

如果你像这样显式实例化一个表单字段,Django 会假设 您想要完全定义其行为;因此,默认 属性(例如 max_length 或 required)不是从 相应型号。如果您想维持中指定的行为 模型,您必须显式设置相关参数 声明表单字段。

您可以尝试:

class SubsytemForm(forms.ModelForm):  
    name =  forms.ChoiceField(widget=RadioSelect, choices= choices )
    class Meta:
        model = Subsystem

你也可以

class SubsytemForm(forms.ModelForm):  
    class Meta:
        model = Subsystem
    def __init__(self, *args, **kwargs):
        self.name_choices = kwargs.pop('name_choices', None)
        super(SubsytemForm,self).__init__(*args,**kwargs)
        self.fields['name'].queryset= self.name_choices  

并且寄出name_choices作为参数SubsytemForm创建。请记住,选择应该是一个查询集。

另外,你应该阅读如何在 Django ModelForm 中过滤外键选项? https://stackoverflow.com/questions/291945/how-do-i-filter-foreignkey-choices-in-a-django-modelform

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django:使用小部件来限制 ModelForm 中的选择 的相关文章

  • Javascript 根据选择选项更改

    内容

    Javascript 不是最好的 所以我想问一下我哪里出了问题 正如标题所示 我有一个带有 4 个不同选项的选择框 当选择一个选项时我想更改 p 带有priceesc id 的标签 这是我到目前为止所拥有的 function priceTe
  • 使用 Python 在 Django 中将 Unix 时间戳转换为人类格式

    我想将字符串中的 unix 时间戳 例如 1277722499 82 转换为更人性化的格式 hh mm ss 或类似格式 有没有一种简单的方法可以在 python 中为 django 应用程序执行此操作 这是在模板之外 在我想要执行此操作的
  • 重定向到 /admin/login/ 结果为 302

    当用户未经身份验证时 我尝试重定向到登录页面 在我的settings py我的课程有 MIDDLEWARE CLASSES path to AuthRequiredMiddleware 这是我的课程 class AuthRequiredMi
  • Django while 循环

    我想知道是否有任何方法可以在 django 中执行 while 循环 我认为这就是我所追求的 我想做的是一个嵌套的 ul li 列表 该列表是由 for 循环中的 for 循环生成的 但由于第二个 for 循环中的某些元素有更多的子节点 我
  • Django send_mail SMTPSenderRefused 530 与 gmail

    一段时间以来 我一直在尝试使用 Django 从我正在开发的网站接收电子邮件 现在 我还没有部署它 并且我正在使用Django开发服务器 我不知道这是否会影响它 这是我的 settings py 配置 EMAIL BACKEND djang
  • Django 中所有应用程序的基本模板

    我有一个包含 2 个应用程序的项目 project blog templates index html polls templates index html project templates base html index html 现在
  • 连接mysql和python.3

    我是 django 的新手 使用 django 1 5 和 python 3 3 有没有办法在 python 3 3 上安装 mysqlDB 或 有其他方法可以连接它们吗 PyMySQL https github com petehunt
  • Mac OSX 10.6 上的 Python mysqldb 不工作

    我正在使用 Python 2 7 并尝试让 Django 项目在 MySQL 后端运行 我已经下载了 mysqldb 并按照此处的指南进行操作 http cd34 com blog programming python mysql pyth
  • django过滤器查询集在模板上显示变量[重复]

    这个问题在这里已经有答案了 下面是我的统计页面的views py 此页面有大量基于我的模型对象的计算 效果很好 然而当我申请时Django 过滤器 https django filter readthedocs io en stable 数
  • Django:导入错误:无法导入名称接收者

    非常基本的 django 应用程序 当我尝试执行任何操作 runserver syncdb 时 它会为我提供以下内容 想法 如果我的其中一个文件有问题 您能帮我指导一下问题可能是什么吗 File Library Python 2 7 sit
  • 通过 HTML 或 JavaScript 禁用 Web 表单上的自动填充?

    有没有办法通过 HTML 或 JavaScript 禁用 Chrome 和其他浏览器中表单字段的自动填充 我不希望浏览器自动填写该浏览器以前用户的表单上的答案 我知道我可以清除缓存 但我不能依赖重复清除缓存 您可以在 HTML 的输入级别添
  • ZF2 将自定义属性添加到选择表单元素中的选项

    我想将自定义 HTML 属性添加到 Zend Framework 2 表单中的选择选项中 这是我的 Form 类中的 部分 代码 this gt add array name gt lieuRemplissage type gt Selec
  • 如何覆盖 Django 中的默认用户模型字段?

    问题是默认的用户模型没有为字段提供一些非常有用的选项 例如唯一 真实到电子邮件字段 我读过这个问题 覆盖默认的用户模型方法 https stackoverflow com questions 1817244 django override
  • django import-export 是否可以自定义预览模板?

    我的管理端将由非系统管理员人员使用 因此我希望它尽可能清晰 我不明白如何在确认导入之前自定义预览 要添加具有外键引用的对象 我只需查找匹配的 idbefore import函数并按照解释替换它here https stackoverflow
  • 从 elm 代码提交表单

    我有这个框架集划分 这是我的elm逻辑在里面main html import Html exposing import Html Attributes exposing view Model gt Html Msg view model H
  • 警告:请求的映像平台 (linux/amd64) 与检测到的主机平台 (linux/arm64/v8) 不匹配

    警告 请求的映像平台 linux amd64 与检测到的主机平台 linux arm64 v8 不匹配 并且未请求特定平台 docker 来自守护程序的错误响应 无法选择具有功能的设备驱动程序 gpu 我在 mac 上尝试运行此命令时遇到此
  • Flex formitem 标签对齐奇怪

    我对这个头发给予了相当大的敬意 为什么标签 1 和标签 2 的垂直对齐方式不同
  • 如何覆盖和扩展基本的 Django 管理模板?

    如何覆盖管理模板 例如 admin index html 同时扩展它 请参阅https docs djangoproject com en dev ref contrib admin overriding vs replacing an a
  • 通过单击两次提交来避免在 Asp.net MVC 中重复提交表单

    我正在 Asp net MVC 中渲染一个带有提交按钮的表单 成功将记录添加到数据库后 页面将重定向 以下是代码 HttpPost public ActionResult Create BrandPicView brandPic if Mo
  • 用于插入或替换 URL 参数的 Django 模板标签

    有人知道 Django 模板标签可以获取当前路径和查询字符串并插入或替换查询字符串值吗 例如向 some custom path q how now brown cow page 3 filter person 发出请求 电话 urlpar

随机推荐