添加不属于模型一部分的自定义表单字段 (Django)

2023-12-31

我在管理网站上注册了一个模型。它的字段之一是长字符串表达式。我想将自定义表单字段添加到管理员中此模型的添加/更新页面。根据这些字段的值,我将构建长字符串表达式并将其保存在相关的模型字段中。

我怎样才能做到这一点?

我正在从符号构建数学或字符串表达式。用户选择符号(这些是不属于模型的自定义字段),当他们单击“保存”时,我从符号列表中创建一个字符串表达式表示并将其存储在数据库中。我不希望符号成为模型和数据库的一部分,而只是最终表达式的一部分。


无论是在你的admin.py或在单独的forms.py你可以添加一个ModelForm类,然后像平常一样在其中声明额外的字段。我还给出了一个示例,说明如何在中使用这些值form.save():

from django import forms
from yourapp.models import YourModel


class YourModelForm(forms.ModelForm):

    extra_field = forms.CharField()

    def save(self, commit=True):
        extra_field = self.cleaned_data.get('extra_field', None)
        # ...do something with extra_field here...
        return super(YourModelForm, self).save(commit=commit)

    class Meta:
        model = YourModel

要让额外的字段出现在管理中,只需:

  1. 编辑你的admin.py并将表单属性设置为引用您上面创建的表单。
  2. 在字段或字段集声明中包含新字段。

像这样:

class YourModelAdmin(admin.ModelAdmin):

    form = YourModelForm

    fieldsets = (
        (None, {
            'fields': ('name', 'description', 'extra_field',),
        }),
    )

UPDATE:

在 Django 1.8 中你需要添加fields = '__all__'到元类YourModelForm.

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

添加不属于模型一部分的自定义表单字段 (Django) 的相关文章

  • 有没有办法拥有租户特定的 JWT 令牌

    我目前正在开发一个 SPA 应用程序 角度 后端使用 Python Flask API 该应用程序将支持多个租户 我对安全概念有点挣扎 我目前正在使用 jwt extend 颁发的 JWT 令牌对所有租户都有效 我当然可以从令牌中获取用户
  • 使用Python选择屏幕区域

    我正在用 Python 开发一个屏幕截图实用程序 目前它是专门针对 Linux 的 到目前为止 我已经能够拍摄完整桌面的屏幕截图 并将其上传到 Imgur 然后将链接复制到剪贴板 现在我想扩展到诸如活动窗口或特定选择的屏幕截图之类的功能 如
  • 禁用在 django Rest Framework 中创建嵌套对象

    Hi 你能帮我怎么做吗禁用创建嵌套对象 我有这样的序列化器 员工拥有团队的外键 class TeamSerializer serializers ModelSerializer class Meta model Team fields id
  • Python 2.7从非默认目录打开多个文件(对于opencv)

    我在 64 位 win7 上使用 python 2 7 并拥有 opencv 2 4 x 当我写 cv2 imread pic 时 它会在我的默认 python 路径中打开 pic 即C Users Myname 但是我如何设法浏览不同的目
  • 如何使用列表理解从列表中删除重复的项目? [复制]

    这个问题在这里已经有答案了 如何使用列表理解从列表中删除重复的项目 我有以下代码 a 1 2 3 3 5 9 6 2 8 5 2 3 5 7 3 5 8 b b item for item in a if item not in b 但它不
  • 在 Flask 中将配置文件作为字典读取

    在 instance app cfg 我已经配置 test test 在我的烧瓶文件 app py 中 with app open instance resource app cfg as f config f read print con
  • 字典键中的通配符

    假设我有一本字典 rank dict V 1 A 2 V 3 A 4 正如您所看到的 我在一个 V 的末尾添加了一个 虽然 3 可能只是 V 的值 但我想要 V1 V2 V2234432 等的另一个密钥 我想检查它 checker V30
  • 使用 ruamel.yaml,如何使带有 NEWLINE 的变量成为不带引号的多行

    我正在生成用作协议的 YAML 其中包含一些生成的 JSON import json from ruamel import yaml jsonsample id 123 type customer account other myyamel
  • XGBOOST 功能名称错误 - Python

    也许这个问题已经以不同的形式被问过很多次了 但是 我的问题是当我使用XGBClassifier 对于像数据这样的产品 我收到功能名称不匹配错误 我希望有人能告诉我我做错了什么 这是我的代码 顺便说一句 数据完全是编造的 import pan
  • fleiss kappa 是衡量注释者间一致性的可靠指标吗?下面的结果让我很困惑,使用它时是否涉及任何假设?

    我有带有以下描述的注释矩阵 3 名注释者 3个类别 206 个科目 数据存储在 numpy ndarray 变量 z 中 array 0 2 1 0 2 1 0 2 1 0 2 1 1 1 1 0 2 1 0 3 0 0 3 0 0 3 0
  • Django 管理内联以实现深层关系

    为直接关系创建内联非常容易 但是如何为更深层次的关系创建内联 假设情况是这样的 class A models Model class B models Model a models ForeignKey A class C models M
  • Pythonwinsound,ASYNC 标志不起作用?

    我正在使用 python 3 5 我试图在继续执行脚本的同时播放声音 根据https docs python org 3 5 library winsound html https docs python org 3 5 library w
  • 如何从张量流数据集迭代器返回同一批次两次?

    我正在转换一些旧代码以使用数据集 API 此代码使用feed dict将一批数据送入列车运行 实际上是三次 然后重新计算损失以供显示使用同一批 所以我需要一个迭代器来返回完全相同的批次两次 或多次 不幸的是 我似乎找不到一种使用张量流数据集
  • .NET 是否有相当于 Python 中的 **kwargs 的功能?

    我一直无法通过典型渠道找到这个问题的答案 在Python中我可以有以下函数定义 def do the needful kwargs Kwargs is now a dictionary i e do the needful spam 42
  • Keras CNN 回归模型损失低,准确度为 0

    我在 keras 中遇到这个 NN 回归模型的问题 我正在研究一个汽车数据集 以根据 13 个维度预测价格 简而言之 我已将其读取为 pandas 数据帧 将数值转换为浮点数 缩放值 然后对分类值使用 one hot 编码 这创建了很多新列
  • 有没有比 ` except: pass` 更简洁的替代方案?

    我有一个函数 可以按偏好顺序返回多个组的随机成员 事情是这样的 def get random foo or bar I d rather have a foo than a bar if there are foos return get
  • Python 正则表达式中的 \B+ 与 [\B]+ 与 [^\b]+

    我在回答 SO 问题时遇到了一个我不明白的问题 我创建了一个简化的示例来说明该问题 场景 我正在测试两个标记 不是随机的英语单词 在字符串中至少相距一定距离 在这个例子中 我们有一个动物列表 我们要确保在羊和狼之间至少还有其他三种动物 否则
  • Django model.foreignKey 并返回 self.text 错误

    所以我正在 Django 中处理 model py 但遇到了 2 个 pylint 错误 我不明白为什么 这是 pylint 的问题还是我在代码中做错了什么 E1120 No value for argument on delete in
  • Pandas 数据透视表同时包含多列

    我怀疑是否pandas pivot table可以一次接受两列并单独处理它们 而不是分层处理 假设我有以下数据框 id date day val 101 11 1 1 1 2 1 101 11 1 2 2 2 2 101 11 1 3 3
  • Python DNS服务器IP地址查询

    我正在尝试使用 python 获取 DNS 服务器 IP 地址 要在 Windows 命令提示符下执行此操作 我将使用 ipconfig 全部 如下所示 我想使用 python 脚本做同样的事情 有什么方法可以提取这些值吗 我成功提取了设备

随机推荐

  • 如何在 SQL 2005 上使用 FOR XML PATH 时保留与号 (&)

    有什么技巧可以防止 SQL Server 将 等字符实体化吗 我正在尝试在 XML 文件中输出 URL 但 SQL 希望将任何 替换为 amp 进行以下查询 SELECT http foosite com RTRIM li imageSto
  • 如何将多个属性绑定到 Angular 5 组件?

    我有一个组件toolbar与模板 div class toolbar item a href item label a div 我想绑定一个数组item options to an A元素 如何使用 Angular 5 做到这一点 cons
  • 从 IJulia 输出中删除科学记数法?

    How do I remove scientific notation from Jupyter IJulia outputs and only get the raw floating point number 您可以使用 printf宏
  • 上下文相关的标记化是否需要词汇语法中的多个目标符号?

    根据ECMAScript 规范 https tc39 es ecma262 sec ecmascript language lexical grammar 词法输入的识别有几种情况 元素对句法语法上下文敏感 即 消耗输入元素 这需要多个目标
  • 如何解析包含 javascript 代码的 html

    如何解析大量使用 javascript 的 html 文档 我知道python中有一些库可以解析静态xml html文件 我基本上正在寻找一个程序或库 甚至是firefox插件 来读取html javascript 执行javascript
  • 添加文本框值并使用 javascript 显示它

    我正在尝试使用 javascript 添加几个文本框的输入值并在下面显示总数 如何添加并保留计算后显示的总和 我不是 JavaScript 专家 下面是一个向您展示如何执行此操作的示例
  • Angular js 对本地化的支持 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我尝试在 AngularJS 中查找支持多种语言的文档 但没有成功 支持本地化吗 看看角度翻译 htt
  • 如何在python中使用scrapy获取直接父节点?

    我是新来的scrapy 我想从网络上抓取一些数据 我得到了如下所示的html文档 dom style1 div class user info p class user name something in p tag p text data
  • 实体框架:多对多关系中的重复记录

    我有以下实体框架代码第一代码 创建表并插入数据 但是 Club 表中有重复的记录 我的操作是 使用俱乐部创建应用程序创建俱乐部 使用人员应用程序创建人员 如何避免重复录入 static void Main string args Datab
  • Linq Select 语句 - 不在的地方

    我正在尝试编写相当于以下内容的 LINQ 语句 select e EmployeeID EmployeeName e FirstName e LastName from Employees e where e EmployeeID not
  • 对 `search_as_you_type` ngram 子字段感到困惑

    我正在尝试将 键入时搜索 功能添加到 Elasticsearch 中名为email address 我的理解从文档 https www elastic co guide en elasticsearch reference 7 7 sear
  • 从本地到 Heroku 服务器的 SCP 文件

    我想将 config yml 文件从本地 django 应用程序目录复制到我的 heroku 服务器 但我不知道如何获取 电子邮件受保护 cdn cgi l email protectionHeroku 的格式 我尝试过运行 heroku
  • Android Room 按别名排序

    我想根据我创建的自定义别名来订购数据集 我尝试过 但它会导致语法错误 我究竟做错了什么 Code Query SELECT a b as ratio FROM dataset where my status myStatus order b
  • WKWebview注入cookie头导致重定向循环

    我试图将我单独获取的会话cookie注入到WKWebview请求中 结果证明这是相当痛苦的 我设法使用注入会话cookie这个解决方案 https stackoverflow com questions 26573137 can i set
  • PCM -> AAC(编码器) -> PCM(解码器)实时且正确优化

    我正在尝试实施 AudioRecord MIC gt PCM gt AAC Encoder AAC gt PCM Decode gt AudioTrack SPEAKER with MediaCodec在 Android 4 1 API16
  • 如何在MySQL中进行批量插入

    我有 1 多条记录需要输入到表中 在查询中执行此操作的最佳方法是什么 我应该创建一个循环并每次迭代插入一条记录吗 或者 还有更好的方法 来自MySQL手册 http dev mysql com doc refman 5 7 en inser
  • Azure 管理 REST API - “身份验证失败。‘授权’标头以无效格式提供。”

    我拼命尝试将 2 个经典存储帐户从旧的 MSDN 订阅移动到 MPN 订阅 但我一直遇到困难 因为仅通过 REST API 支持这些帐户的移动 我已按照此处的说明启用了 API https azure microsoft com en us
  • Eclipse 是否有排列类文件的功能?

    Eclipse 有很多功能 我想知道这个功能是否存在 或者是否存在任何捷径 我想将我的类数据排列到该流程中的变量 构造函数 方法中 从上到下 进一步细化我想按访问级别 pub private protected 和类型 void 或返回的方
  • 使用 GSON 获取 JSON 键名

    我有一个 JSON 数组 其中包含如下对象 bjones fname Betty lname Jones password ababab level manager 我的 User 类有一个用户名 需要使用 JSON 对象的密钥 我如何获取
  • 添加不属于模型一部分的自定义表单字段 (Django)

    我在管理网站上注册了一个模型 它的字段之一是长字符串表达式 我想将自定义表单字段添加到管理员中此模型的添加 更新页面 根据这些字段的值 我将构建长字符串表达式并将其保存在相关的模型字段中 我怎样才能做到这一点 我正在从符号构建数学或字符串表