Django CreateView get_initial 外键

2024-02-27

我有一个表格,我正在尝试使用get_initial设置外键的方法。模型是

class CardioRecord(models.Model):
    date_uploaded = models.DateField(auto_now=True)
    client = models.ForeignKey(User, on_delete=models.CASCADE)
    run_dist = models.FloatField(blank=True, null=True)
    run_time = models.FloatField(blank=True, null=True)

形式是

class CardioRecordForm(forms.ModelForm):
        class Meta:
            model = CardioRecord
            fields = [
                        'client',
                      'run_dist',
                      'run_time',
                      ]
            labels = {
                'run_dist': 'Distance (km)',
                'run_time': 'Time (min)',
            }
            widgets = {
                'client': forms.HiddenInput()
            }

视图是

class CardioCreateView(CreateView):
    model = CardioRecord
    form_class = CardioRecordForm
    template_name = 'training/cardio_form.html'

    def get_initial(self):
        initial = super(CardioCreateView, self).get_initial()
        initial['client'] = self.request.user.pk
        return initial

我得到的错误是

null value in column "client_id" violates not-null constraint

看起来初始值没有传递给表单。如何将外键传递给表单?


使用隐藏字段不会阻止用户编辑值。如果要在视图中设置值,请将其从fields形式为:

class CardioRecordForm(forms.ModelForm):
        class Meta:
            model = CardioRecord
            fields = [
                      'run_dist',
                      'run_time',
                      ]

然后在表单实例上设置值form_valid method:

class CardioCreateView(CreateView):
    def form_valid(self, form):
        form.instance.client = self.request.user
        return super(CardioCreateView. self).form_valid(form)

然后您可以删除您的get_initial method.

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

Django CreateView get_initial 外键 的相关文章

随机推荐

  • 如何将 ubuntu 命令提示符下的 jar 输出重定向到文本文件

    我创建了 jar 文件并使用以下命令运行它 java jar niidle jar arguments 它显示正确的输出 但我看不到整个输出 我想看到整个输出 那么当我运行以下命令时 如何将整个事情重定向到文本文件 java jar nii
  • 如何在 PHP 中复制 Excel FV 函数?

    我正在将一些相当复杂的计算从 Excel 电子表格转换为 PHP 我被困在 Excel 的 FV 函数的转换上 它的定义如下 FV interest rate number payments payment PV Type 我已经为此工作了
  • 更改源文件后,Visual Studio 2010 提示“构建失败,但没有错误”

    我有一个包含几个项目的 Visual Studio 2010 解决方案 我可以使用 构建 gt 构建解决方案 或 构建 gt 构建 MyCompany MyProduct MyProject 成功构建 构建后 我按 CTRL F5 并成功运
  • ASP.NET MVC 模型状态

    ModelState IsValid 在我的控制器中为我返回 false 我知道这意味着模型绑定时发现一个或多个模型错误 我的问题是如何查看错误 我注意到我的特定 ModelState 有 6 个项目 如果我尝试做其中任何一个 ModelS
  • 绕过 try/catch 块以检查异常的 Lambda 表达式

    由于我尝试提取一些在大多数项目中使用的常见包装 lambda 例程 我已经能够创建CheckedFunction 子类为PermeableFunction绕过 try catch 块的功能接口 我已经在 Windows v1 8 0 251
  • Python requests lib 花费的时间比执行 get 请求的时间要长

    所以我有这个代码 每当我运行代码并到达第 3 行时 执行 get 请求大约需要 20 秒 没有理由花这么长时间 而且每次都花很长时间 有什么帮助吗 def get balance addr try r requests get http b
  • 如何在 Java 中固定字节数组?

    有没有办法在java中固定字节数组 这样它就不会被移动 压缩 我正在开发一个应用程序 该应用程序旨在在运行时具有零 GC 并且我想使用固定到内存映射区域的原始字节数组 有什么办法可以做到这一点或者破解我的方法吗 您可以使用 ByteBuff
  • .NET Core 3 预览版 4:“AddNewtonsoftJson”未定义

    使用 NET Core 3 预览版 4 F ASP NET MVC 项目的 API 模板无法构建 这没有对模板进行任何更改 这是失败的代码 type Startup private member this ConfigureServices
  • 将 DatePicker 添加到模态时出现问题 - 在背景中显示

    我正在尝试插入我在这里找到的 DatePicker http www eyecon ro bootstrap datepicker http www eyecon ro bootstrap datepicker 但我无法让它显示在我的模态前
  • Python 从磁盘刷新文件

    我有一个 python 脚本 它调用系统程序并从文件读取输出out txt 作用于该输出并循环 然而 它不起作用 仔细调查发现 python脚本只是打开out txt一次 然后继续阅读旧版本 如何让 python 脚本在每次迭代时重新读取文
  • Log10 x 轴位于顶部,y 轴位于 geom_line

    我在 ggplot2 中创建了一个图表 如下所示 depth c 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 ri lt c 0 790143779 1 485888068 2 682375391 1 728120227
  • 秒表取消暂停不起作用

    我正在尝试创建一个秒表 这start and pause按钮工作正常 但unpause按钮无法正常工作 timer是我的 JLabel 我想在其中展示我的秒表 它引用timer来自 JFrame 我无法发布 MCVE 因为代码太多 这是我的
  • 默认标题 p:带有 pdf 播放器的媒体

    我正在编程一个
  • 如何删除文本区域中行之间的行间距?

    我是 PHP 新手 我有一个代码 其中我使用多个文本编辑器和 Jquery 通过文本编辑器 我将值存储在 mysql 数据库中 之后 我有一个页面 在该页面上我从数据库获取一些字段并应用查看更新和删除等增删改查操作 现在这是我的问题 当我单
  • Quickblox 和 Pro Guard 错误

    我正在开发一个使用 Quickblox SDK 的应用程序 如果我编译它 minifyEnabled false 效果很好 但是如果我启用 minify 来混淆代码 我会收到以下错误 09 15 15 00 50 865 12029 120
  • 如何在 matplotlib 中可视化 95% 置信区间?

    我已经学会了如何找到 95 置信区间scipy stats t like so In 1 from scipy stats import t In 2 t interval 0 95 10 loc 1 scale 2 95 confiden
  • 如何加快 jquery :selected 选择器的速度?

    我的网页中有一个下拉列表 其中包含 3830 个元素 我知道 有点过分 但无论如何 在 jquery 中 我使用以下语句获取所选选项值 institutionCombo selected val 在找到选择之前有一个明显的停顿 一旦获得该值
  • angularjs 2 cli,构建chrome扩展,定义内容和后台脚本的麻烦

    假设我生成了一个新的angularjs 2应用程序与cli https github com angular angular cli 所以与ng build it builds我的消息来源 dist folder 由于我正在构建 chrom
  • 请解释 RestTemplate [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有课 public class Client extends RestTemplate org springframework web
  • Django CreateView get_initial 外键

    我有一个表格 我正在尝试使用get initial设置外键的方法 模型是 class CardioRecord models Model date uploaded models DateField auto now True client