Django ModelForm ChoiceField 不显示实例数据

2023-12-12

我有一个ModelForm我在其中设置了几个字段的类ChoiceField。对于我的一个观点,我想从我的ModelForm从数据库中模型实例中提取的类(如下所示):

form = MyModel(instance=model_instance)

当我执行此操作然后在模板中渲染表单时,我注意到大多数字段都预先填充了从模型实例中提取的值,这正是我想要的。然而,对于两个人来说情况并非如此ChoiceField字段。这些呈现为下拉选择菜单,未选择任何特定选项。

奇怪的是,如果我不将这两个字段定义为ChoiceField- 在我的 ModelForm 类中键入,它们呈现为 HTML 中的普通文本输入字段,并使用数据库值进行预填充。但是,当我定义它们以便它们显示为 HTML 中的选择选项输入字段时,没有预先选择任何内容。我可以更改此设置以便预先选择数据库中的值吗?

EDIT:根据此处的要求,我的模型和表单的代码:

class App(models.Model):
    CODES = (
        (u'a',u'annual'),
        (u'm',u'monthly'),
        (u'w',u'weekly')
    )
    code = models.CharField(max_length=1, choices=CODES)
    start_time = models.TimeField(blank=True, null=True)
    end_time = models.TimeField(blank=True, null=True)


class AppForm(ModelForm):
    CODES = (
        (u'',u'Please select code'),
        (u'a',u'annual'),
        (u'm',u'monthly'),
        (u'w',u'weekly')
    )
    TIMES = (
        (u'00:00',u'All Day'),
        (u'12:00',u'Noon')
    )
    start_time = forms.ChoiceField(required=False, choices=TIMES)
    end_time = forms.ChoiceField(required=False, choices=TIMES)
    code = forms.ChoiceField(choices=CODES, label='Type')

    class Meta:
        model = App

有趣的是,code当呈现为 HTML 时,字段具有预先选择的模型实例值。我想知道是否有choices模型定义中的参数在这里有什么不同吗?

UPDATE:我刚刚注意到,如果我拉起一个App实例中的python manage.py shell像这样:

a = App.objects.get(id=16)
a.start_time

我得到一个像这样的值datetime.time(12, 0)。但是在 Django 管理中,当我查看所有的App实例,所有这些都表明(None) under start_time and end_time。为什么会这样呢?


响应您的更新:您的时间字符串与默认时间字符串 HH:MM 格式匹配。就像用户在 12:00 手动从网站输入它们一样。这些值在模型保存时(在实际验证时)被解析并转换为时间。

当您加载模型时 - 当然,从对象加载的初始值与字段的 (models.TimeField) 类型匹配。

如果您将 TIMES 替换为

    (datetime.time(0,0),u'All Day'),
    (datetime.time(12,0),u'Noon')

你的麻烦应该结束了。

Alan

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

Django ModelForm ChoiceField 不显示实例数据 的相关文章

随机推荐

  • 是否可以比较 SQL Server 中相似数据的行

    是否可以在 SQL Server 中比较类似数据的行 我的表中有一个公司名称列 其中公司名称可能有些相似 以下是代表相同 4 个公司的 8 个不同值的示例 ANDORRA WOODS ANDORRA WOODS HEALTHCARE CEN
  • Lua和javascript可以连接吗?

    我不确定这个问题是否恰当 因为英语不是我的母语 lua 和 javascript 可以连接在一起吗 我还没有找到任何相关信息 或者是否有可能 例如在 html 文件中使用两种语言编写脚本 例如 也许可以在这些语言之间共享信息 或者是否可以在
  • 如何在 Java 中合并 CSV 文件

    我的第一个 CSV 文件看起来像这样 包含标题 标题仅包含在顶部 而不包含在每个条目之后 NAME SURNAME AGE Fred Krueger Unknown n records 我的第二个文件可能如下所示 NAME MIDDLENA
  • JavaScript 正则表达式电子邮件验证[重复]

    这个问题在这里已经有答案了 此代码始终会发出警报 null 这意味着字符串与表达式不匹配 var pattern w a zA Z a zA Z 2 3 function isEmailAddress str str email prote
  • 使用 dictwriter 覆盖同一 csv 文件中的行

    我有名字 csv first name last name Baked Beans Lovely Spam John Bang Harry Potter 我想在同一文件中将 John Ban 重命名为 jason statham 我尝试使用
  • Laravel 5.1 找不到路由对象

    请帮助我 我正在使用最新版本的 xampp 开发 Laravel 并且不知道问题的原因是什么 这条路线运行良好 Route get function return aa 此路线给出错误 未找到对象 Route get about funct
  • 带参数的 mongoexport + node.js + 子进程

    我正在尝试使用 node js 从 mongodb 导出 csv 为此 我从以下代码开始 app get export function req res var spawn require child process spawn ls sp
  • URL 重写模块的自定义重写提供程序

    我有一个在 IIS 中运行的 URL 重写模块的自定义重写提供程序 我使用它根据自定义逻辑重定向请求 它是基于这样的 http www iis net learn extensions url rewrite module developi
  • SELECT 如何返回未排序的结果集?

    当我访问此链接时 我只是想以相反的顺序显示 SELECT 查询的结果集 选择 MySQL 中的最后一行 在一个答案中提到关系数据库没有第一行或最后一行 所以我的问题是我们是否输入SELECT FROM table name 结果集是否必须与
  • 模板文字在反应中不起作用

    我的代码如下 模板文字不会在 span 标记中创建多行字符串 而它会在控制台中创建多行 import React Component from react import ReactDOM from react dom class MyApp
  • OnServiceConnected 没有被调用

    我已经提到了以下问题 但找不到答案 无法获取服务对象 onServiceConnected 从未调用 onServiceConnected 没有被调用 出现空指针异常 and onServiceConnected 在bindService
  • 在 IIS7 中配置 ASP.NET

    有没有办法在 IIS7 中配置 ASP NET 我知道这一定是一个愚蠢的问题 但在 IIS7 中我看到了 ASP 的图标 这是经典 ASP 的配置吗 IIS 7 与以前的版本有很大不同 尤其是在 ASP NET 方面 在以前的版本中 ASP
  • 在VS2013中从SVN更新后,数据集Designer.cs生成Designer1.cs

    从 SVN 数据集 Designer cs 文件进行更新后 我遇到一个奇怪的问题生成另一个具有不同名称的文件 例如 test Designer cs 更新后重命名为 test1 Designer cs 我遵循发现的建议here 但无法再次生
  • 触摸开始无法检测到所触摸的内容

    我正在使用 NSTimer 构建一个旋转横幅来跟踪当前图像 该图像是由 5 个不同图像制作而成的动画 我设置了一个 TouchesBegan 来在有人单击横幅时继续处理横幅上的触摸事件 我的概念验证有效 但将其转移到另一个项目中时 它就崩溃
  • Google 重定向 URI 不允许使用片段 URL 的解决方法

    我使用mac开发一个MEAN堆栈项目 我的网页https localhost 3000 login and https localhost 3000 new工作 请注意 我的所有页面都需要有 中间工作 https localhost 300
  • 无法加载模块描述符类:找不到类“com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor”

    所以我是新手 我尝试使用 Firebase 9 0 0 实现电子邮件 密码身份验证 因此该活动要么执行注册操作 要么执行登录操作 登录操作运行顺利 我可以在 Firebase 控制台上看到更新 但是当我尝试注册新用户时 出现此错误 E Dy
  • Java:全局异常处理程序

    有没有办法在 Java 中创建全局异常处理程序 我想这样使用 When an exception is thrown somewhere in the WHOLE program exit 处理程序可能无法捕获抛出的异常try catch
  • 禁用列排序不适用于多个 angularjs 数据表

    我正在使用多个 angularjs 数据表 并在每次用户从下拉列表中选择一个选项时生成一个新表 根据用户的选择 我发出 http 请求以从数据库中获取新数据 对于每个表 我都有不同的dtColumnDefs 是动态设置的 因为我的表列标题是
  • 如何在 PHP 中随机化数组

    我有一个像这样的数组 arr 1 2 4 5 6 7 8 9 但我需要这个数组的随机版本 我正在使用该函数shuffle像这样 random shuffle arr 但这个函数只是返回true而不是数组的随机版本 shuffle 此函数对数
  • Django ModelForm ChoiceField 不显示实例数据

    我有一个ModelForm我在其中设置了几个字段的类ChoiceField 对于我的一个观点 我想从我的ModelForm从数据库中模型实例中提取的类 如下所示 form MyModel instance model instance 当我