在 django vanilla CreateView 上设置当前用户

2024-06-01

我想用当前登录的用户更新我的模型。我正在使用 django-vanilla-views。为了存储新记录,我尝试使用 CreateView。我不想在表单上显示用户,只需自动更新即可。

这是我的模型:

class Measurement(models.Model):
    date = models.DateField()
    user = models.ForeignKey(User)

这是我的观点:

class CreateMeasurement(CreateView):
    model = Measurement
    fields = ['date']
    success_url = reverse_lazy('list_measurements')

    def get_form(self, data=None, files=None, **kwargs):
        kwargs['user'] = self.request.user
        return super(CreateMeasurement, self).get_form(data=data, files=files, **kwargs)

不幸的是,当访问视图时,我收到以下异常:

TypeError: __init__() got an unexpected keyword argument 'user'

我还尝试为我的模型创建一个 ModelForm,但得到了完全相同的错误。有什么想法我可能做错了什么吗?


您不需要将用户传递给表单,因此不要覆盖get_form方法。您已经排除了该用户field通过设置从模型形式fields在您看来,因此您也不需要自定义模型表单。

它应该足以覆盖form_valid方法,并在保存表单时设置用户。

from django.http import HttpResponseRedirect

class CreateMeasurement(CreateView):
    model = Measurement
    fields = ['date']
    success_url = reverse_lazy('list_measurements')

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

在 django vanilla CreateView 上设置当前用户 的相关文章

随机推荐

  • 大小写切换是这样工作的吗?

    我今天遇到了一段大小写切换的代码 对它的工作原理感到有点惊讶 代码是 switch blah case a break case b break case c case d case e code here break default re
  • 每个父元素上每个第一个元素的 jQuery 选择器

    我有一个像这样的 HTML div class container span class iconset span span class iconset span div div class container span class ico
  • jQuery:如何引用类名带有句点的 HTML 元素?

    我这样有几个元素 td class sede co uk 我想这样使用 jquery 引用它们 td sede co uk 但 jquery 没有 找到 它们 因为 我猜 co 和 uk 之间的点 任何想法 Regards Javi You
  • 为什么我突然有一个弹跳的 Python 火箭?

    最近 我对在 OS X 10 10 Python 2 7 6 上运行的一些 matplotlib 代码做了一个简单的更改 注释掉了设置我使用的后端的一行 matplotlib use agg 现在 只要我的代码正在运行 我的扩展坞中就会出现
  • iPhone 上的最大蓝牙连接数是多少?

    如果您对此有任何见解 那么了解连接之间是否存在很大的延迟也会很高兴 蓝牙协议规定连接是点对点的 因此称为 配对 但不同的站可以同时使用不同的配置文件 每个配置文件一次仅支持一个连接 您可以同时与汽车建立立体声耳机连接并与笔记本电脑建立数据连
  • 在两个可拖动的 Flatlist 之间拖放 - React Native

    我正在努力为我的 React Native 应用程序创建一个要求 其中我有一个空白的保管箱 在放置平面列表项目时 它应该转换为可拖动的平面列表 和一个可拖动的平面列表 我必须从其中拖放到空白保管箱 反之亦然 两个平面列表中的项目应该有一个单
  • 为二叉树实现 IntoIterator

    我正在尝试构建一棵二叉树并编写一个迭代器来遍历树中的值 当为我的树节点实现 IntoIterator 特征时 我遇到了生命周期问题 src main rs 43 6 43 8 error the lifetime parameter a i
  • iReport 中的 google.zxing 条码生成器

    我想在我的页面中添加条形码并可以预览它 条形码生成器是谷歌 zxing我的报告工具是iReport 但不知道如何配置Image Expression and Expression Class中的图像的iReport 两个关键思想是首先编写一
  • 消除 Android 网络应用程序的 onclick 延迟

    你好 我正在构建一个网络应用程序 为了消除 onclick 延迟 我发现了这个脚本http cubiq org remove onclick delay on webkit for iphone http cubiq org remove
  • 将可区分的联合传递给 InlineData 属性

    我正在尝试对一个解析器进行单元测试 该解析器解析字符串并返回相应的抽象语法树 表示为可区分的联合 我认为使用 Xunit Extensions 属性会非常紧凑InlineData将所有测试用例堆叠在一起
  • 提交Ajax表单后如何用消息更新_Layout.cshtml中的DIV?

    目前我有一把剃须刀View像这样 TotalPaymentsByMonthYear cshtml model MyApp Web ViewModels MyViewModel using Ajax BeginForm TotalPaymen
  • 如何阅读英特尔操作码符号

    我正在阅读一些引用的材料Intel vol 2 SDM x86 手册 https www intel com content www us en developer articles technical intel sdm html关于汇编
  • java.lang.ClassNotFoundException dalvik.system.BaseDexClassLoader.findClass

    伙计们 我的 apk 在我自己的手机上可以运行 但我将其附加到 Google Play 商店 我从商店安装了应用程序 但它不起作用 当我检查开发人员控制台时 我看到此错误 请帮帮我 我能做什么 java lang RuntimeExcept
  • Safari 会话变量中具有多个页面的 Facebook Iframe 应用程序不持久

    我有一个 facebook Iframe 应用程序 其中包含多个 PHP 页面 我有一些链接相对于我的 iframe 文件夹 内的文件 iframe 内的会话变量存在一些问题 我设置了一些会话变量 但它们不会从一个页面持续到另一个页面 这确
  • 可以在谷歌静态地图上画一个圆圈吗?

    静态地图 API 讨论了路径 但没有提及圆圈 这可能吗 谢谢 您可以通过绘制详细的轮廓来表示圆PolyLine因为谷歌静态地图本身不支持绘制圆 您需要一种算法来生成正确的编码折线 我用过这个执行 http www svennerberg c
  • VSCode 不会从 Next.js 项目中的“react”自动导入

    This is not的副本这个问题 https stackoverflow com questions 71476308 how to stop vs code importing react methods from minified
  • Google Add-on 在有限模式应用脚本中添加菜单项

    我们在新的谷歌应用程序脚本添加商店中发布了一个插件 但在除安装的初始电子表格之外的任何电子表格中使用该插件时 权限似乎无法正常工作 我遇到一个问题 当创建新电子表格并且用户从 管理加载项 菜单中选择 使用此加载项 时 我们的菜单项不会填充
  • 线程池的 lambda 函数内的编译器错误变量“未捕获”

    我正在学习 C 中的多线程 并尝试设置线程池 但收到编译器错误 提示 错误 未捕获 mapperNodes 和 错误 未捕获 command 我读过一些关于使用 this 捕获 lambda 中的变量的内容 但到目前为止没有任何效果 如何在
  • 通过jquery传递搜索参数

    我有一个表单 如果用户输入搜索查询 其参数应通过 jquery 传递 并在获取结果后将结果加载到 div 容器中 由于我不太熟悉 jquery 我该怎么做 html currently the data is being displayed
  • 在 django vanilla CreateView 上设置当前用户

    我想用当前登录的用户更新我的模型 我正在使用 django vanilla views 为了存储新记录 我尝试使用 CreateView 我不想在表单上显示用户 只需自动更新即可 这是我的模型 class Measurement model