Django/Python 更新字段值(在模型保存期间)

2023-12-29

我试图在保存 django 模型时将它们中的许多字段大写。看着这个问题 https://stackoverflow.com/questions/825955/changing-case-upper-lower-on-adding-data-through-django-admin-site,其中有this https://stackoverflow.com/a/826126/907060 answer:

class Blog(models.Model):
    name = models.CharField(max_length=100)
    def save(self):
        self.name = self.name.title()
        super(Blog, self).save()

这工作正常,但是,在每次保存中,如果我想多次重复此操作,则需要一些额外的输入。因此,我想创建一个函数,将字段作为输入,并在保存步骤中将它们重新保存为大写形式。所以我写了这个来测试它:

def save(self):
    for field in [self.first_name, self.last_name]:
        field = field.title()
    super(Artist,self).save()

然而,如果我之前考虑过,我就会意识到这只是覆盖了field多变的。我想循环浏览变量列表来更改它们。我知道有些函数会就地更改值,而不使用=。他们如何做到这一点?我能做到吗?

或者有一些更简单的方法来完成我正在做的事情吗?我走错路了吗?


解决方案: 从第一个答案开始,我做了这个功能:

def cap(self, *args):
    for field in args:
        value = getattr(self, field)
        setattr(self, field, value.title())

在我的模型中:

def save(self):
    cap(self,'first_name', 'last_name')
    super(Artist,self).save()

您可以使用 setattr(self, my_field_name, value) 来实现此目的。

for field in ['first_name', 'last_name']: 
    value = getattr(self, field)
    setattr(self, field, value.title())

您将无法就地修改该值,因为字符串在 Python 中是不可变的。

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

Django/Python 更新字段值(在模型保存期间) 的相关文章

  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • Python 3d 绘图设置固定色阶

    我正在尝试绘制两个 3d 数组 第一个数组的 z 值在范围内 0 15 0 15 第二个来自 0 001 0 001 当我绘图时 色标自动遵循数据范围 如何设置自定义比例 我不想看到 0 001 的浅色 而应该看到 0 15 的浅色 如何修
  • Pycharm 在 os.path 连接上出现“未解析的引用”

    将pycharm升级到2018 1 并将python升级到3 6 5后 pycharm报告 未解析的引用 join 最新版本的 pycharm 不会显示以下行的任何警告 from os path import join expanduser
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • 如何将特定范围内的标量添加到 numpy 数组?

    有没有一种更简单 更节省内存的方法可以单独在 numpy 中执行以下操作 import numpy as np ar np array a l r ar c a a 0 l ar tolist a r 它可能看起来很原始 但它涉及获取给定数
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 为什么一旦我离开内置的运行服务器,Django 就无法找到我的管理媒体文件?

    当我使用内置的简单服务器时 一切正常 管理界面很漂亮 python manage py runserver 但是 当我尝试使用 wsgi 服务器为我的应用程序提供服务时django core handlers wsgi WSGIHandle
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14
  • 未知错误:Chrome 无法启动:异常退出

    当我使用 chromedriver 对 Selenium 运行测试时 出现此错误 selenium common exceptions WebDriverException Message unknown error Chrome fail
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • python 中的“槽包装器”是什么?

    object dict 和其他地方的隐藏方法设置为这样的
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 如何使用 PrimaryKeyRelatedField 更新多对多关系上的类别

    Django Rest 框架有一个主键相关字段 http www django rest framework org api guide relations primarykeyrelatedfield其中列出了我的 IDmany to m
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视

随机推荐

  • 使用数据注释将字段标记为“只读”

    我正在努力使ID字段只读 它是数据库中的一个身份字段 因此用户不会设置它 不过 他们还是愿意看到 当分配给一个时 我缺少什么如下DataForm仍然允许编辑该值 public class StatusChoice BindableBase
  • 使用 Selenium 保存整页内容

    我想知道保存 Selenium 访问站点时检索到的所有文件的最佳方法是什么 换句话说 当 Selenium 访问时http www google com http www google com我想保存 HTML JavaScript 包括
  • 如何在windows中通过命令提示符方式设置文件权限?

    如何通过命令提示符方式在windows中设置相同的文件权限 gt attrib Displays or changes file attributes ATTRIB R R A A S S H H drive path filename S
  • 处理器架构不匹配构建错误

    在尝试运行测试应用程序时 我收到以下错误两次 正在构建的项目 MSIL 的处理器架构与参考 C Windows Microsoft NET Framework v4 0 30319 mscorlib dll x86 的处理器架构之间存在不匹
  • 如何在 google-app-engine 中使用内置的 django templatetags

    我正在尝试在内置模板标签中使用 Django 例如标记和 在我的谷歌应用程序中人性化 但它不起作用 我在 INSTALLED APPS 中添加了标记和人性化 还是行不通 如何使用它 这是人性化的方法 其他应该类似 在调用模板的控制器末尾有一
  • 从 iOS 设备上传图像到服务器

    我正在尝试在远程服务器上上传图像 如果我从谷歌下载手机上的图像并上传它们 例如http www mangauk com gallery albums album 11 lg scooby jpeg http www mangauk com
  • 在 PHP 中实现 secp256k1 (ECDSA)(针对比特币)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 对于热心的反对者和 或结束者 如果您认为这对 SO 来说是题外话 请向我指出其他 StackExchange 网站 在该网站上这个问题会更
  • 为什么矩阵和 data.frame 之间的“越界”索引不同?

    我确信这是基本的 但我只是想really在这里了解R数据结构的逻辑 如果我按超出范围的索引对矩阵进行子集化 则会得到该错误 m lt matrix data c foo bar nrow 1 m 2 Error in m 2 subscri
  • 使用 php 清除 CMD-shell

    我有这个简单的 php 脚本 它每秒输出一个字符串
  • 如何删除包过滤器?

    如何禁用包过滤器 我不断收到此消息 Ignoring unknown package filter build tools 23 0 0 rc2 Warning The package filter removed all packages
  • 如何在 C# 中更改 XML 文件的属性值?

    我有一个 XML 文件 web config 我需要编辑每个标签的 value 属性 具体取决于键名称 这是 XML 文件的示例
  • 使用 xPath 循环遍历项目

    我正在尝试循环遍历 xml 文档 但我仍然在第二次迭代中获取第一个元素 不确定我缺少什么 有人可以帮忙吗 Xpath 非常新 string file HttpContext Current Server MapPath XML Locati
  • 是否需要break语句或者return语句就足够了?

    在我的 Python 3 5 脚本中 我有一个简单的for循环 看起来像这样 request simple string ignore Tuple that contains regex s to ignore for i regex in
  • 如何访问 Heroku 中的 docker 容器?

    我已按照此处构建图像的说明进行操作 https devcenter heroku com articles container registry and runtime getting started https devcenter her
  • 在 Shiny 中按日期过滤

    作为一个可怜的闪亮家伙 无法解决简单的任务 我在数据框中有一行带有日期的行 crime date lt strptime incidents REPORT DAT format Y m d 我的日期输出如下所示 1 2017 04 07 E
  • 在 Flask 中渲染 Jupyter Notebook Iframe

    我正在使用 Flask 为单个用户托管 UI 我一直在尝试做的事情是设置一种方法 让用户单击一个按钮 使用标记语言在文档中预先指定的位置插入一些文本和图像 我最初使用 Jinja2 来实现此目的 但问题是用户需要能够在插入数据后修改文档 以
  • 标签(或“标记”)接口是否已过时?

    我正在尝试帮助一位同事接受 OO 并且我发现在某些情况下 很难找到标签概念的可靠的现实示例 或marker 界面 不包含任何方法的接口 它仅用作标记或标记或标签 虽然对于我们的讨论来说这确实不重要 但我们使用 PHP 作为讨论背后的平台 因
  • ServiceStack支持二进制响应吗?

    ServiceStack服务中是否有任何机制可以返回流 大型二进制数据 WCF 的 MTOM 支持虽然笨拙 但可以有效地返回大量数据 而无需文本转换开销 我喜欢服务堆栈 这个小代码足以从内存流返回 Excel 报告 public class
  • Rails 中 Gemfile 有什么用?

    有什么用Gemfile在铁轨上 如何使用Gemfile 在 Rails 开发过程中 有时您会想要提供一些您需要的功能 但要么您不知道如何做 要么您不想自己实现它 因为有很多才华横溢的开发人员已为其开发投入了工作 您可能需要的这些开发 用户身
  • Django/Python 更新字段值(在模型保存期间)

    我试图在保存 django 模型时将它们中的许多字段大写 看着这个问题 https stackoverflow com questions 825955 changing case upper lower on adding data th