显示 django 对象表

2024-01-06

我需要使用 Django 显示数据库中的表。最明显的方法是手动输入表标题并循环查询结果model.objects.all()。然而,由于很懒,我想自动执行此操作,即通过内省加载模型中的所有字段以显示为列标题,并加载所有字段值以显示为行。这种方法还可以为我节省一些时间,因为当我的模型发生变化时,我不必更新我的模板代码。我已经让它工作了,但有两个问题:

  1. 我找不到加载 AutoField 字段 (id) 值的方法,因此我必须切掉 ID 列。
  2. 该代码看起来相当混乱,尤其是使用随机模板标签时。

这是我的代码。请注意,代码工作正常,因此我将跳过所有导入,因为它们是正确的:

views.py我使用序列化器来序列化数据,这是我在 stackoverflow 上读到的一个技巧

def index(request):
   fields    = MyModel._meta.fields
   data      = serializers.serialize("python", MyModel.objects.all())
   context_instance = RequestContext(request, {    
       'data'      : data,
       'fields'    : fields,
   })
   return TemplateResponse(request, 'index.html', context_instance)

模板/index.html:请注意,我必须通过切掉字段列表的第一个元素来切掉 ID 列

{% with fields|slice:"1:" as cached_fields %}
<table>
    <thead>
        <tr>
            {% for field in cached_fields %}
                <th>{% get_verbose_name field %}</th>
            {% endfor %}
        </tr>
    </thead>
    <tbody>
        {% for instance in data %}
        <tr>
            {% for field in cached_fields %}
                <td>{% get_value_from_key instance.fields field %}</td>
            {% endfor %}
        </tr>
        {% endfor %}
    </tbody>
</table>
{% endwith %}

模板标签/extra_tags.py

# tag to get field's verbose name in template 
@register.simple_tag
def get_verbose_name(object):
    return object.verbose_name

# tag to get the value of a field by name in template
@register.simple_tag
def get_value_from_key(object, key):
    # is it necessary to check isinstance(object, dict) here? 
    return object[key.name]

serializers.serialize("json or xml", Model.objects.all())格式返回 id 字段;可能不是您想要的,但一些 jQuery 网格插件可以进一步自动化该任务。

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

显示 django 对象表 的相关文章

  • PyList_SetItem 与 PyList_SETITEM

    据我所知 PyList SetItem 和 PyList SETITEM 之间的区别在于 PyList SetItem 会降低它覆盖的列表项的引用计数 而 PyList SETITEM 不会 我有什么理由不应该一直使用 PyList Set
  • KFold 和 ShuffleSplit CV 有什么区别?

    看起来 KFold 每次迭代对象时都会生成相同的值 而 Shuffle Split 每次都会生成不同的索引 它是否正确 如果是这样 其中一个相对于另一个有什么用处 cv cross validation KFold 10 n folds 2
  • Python:记录垃圾收集器

    我有一个 python 应用程序 有一些性能问题 我想将垃圾收集器的事件 特别是何时调用 添加到我的日志中 是否可以 thanks http docs python org library gc html gc set debug http
  • Django css文件缓存

    我有一个 css 文件 我想修改它以满足我的需要 问题是它似乎被缓存在某个地方 因为无论我在 css 文件中做什么 我都看不到更改 我确信我指向了正确的文件 因为现在我已经对其进行了修改 并且它有效 有什么设置可以关闭缓存吗 谢谢 正如本文
  • 为什么 tkinter / window.update 在我的程序中随着时间的推移变得更慢?

    我发现当我调用 window update 时 当向窗口写入的内容较少时 它的运行速度会更快 但后来 当我向窗口写入更多元素时 window update 需要更长的时间 请参阅下面的我的代码 您可以看到它在更新窗口之前一次向屏幕 100
  • Python的reduce()短路了吗?

    If I do result reduce operator and False 1000 得到第一个结果后它会停止吗 自从False anything False 相似地 result reduce operator or True 10
  • 使用 Scipy imsave 将 Numpy 数组保存到图像时保留未更改的数据

    使用 Scipy 保存二维 Numpy 数组 单个值 时toimage or imsave像素值与 Numpy 数组中的像素值不完全匹配 相反 在某些区域 主要是边缘 图像算法似乎使用某种插值 是否有一个选项可以停止插值并保留准确的数据 例
  • 用Python中的嵌套for循环替换重复的if语句?

    在我编写的下面的代码中 n 4 所以有五个 if 语句 所以如果我想将 n 增加到 比如说 10 那么就会有很多 if 语句 因此我的问题是 如何用更优雅的东西替换所有 if 语句 n p 4 5 number of trials prob
  • 杂乱的扭曲连接在不干净的时尚中消失了。没有代理。已经尝试过标题

    我正在尝试抓取这个网站 https www5 apply2jobs com jupitermed ProfExt index cfm fuseaction mExternal searchJobs https www5 apply2jobs
  • Matplotlib 图例不工作

    自从升级 matplotlib 以来 每当尝试创建图例时 我都会收到以下错误 usr lib pymodules python2 7 matplotlib legend py 610 UserWarning Legend does not
  • 从 IMDbPy 结果中的片目中获取电影 ID

    我正在尝试创建一个数据集 允许我根据 Python IMDb API 中的演员 ID 和电影 ID 加入演员和电影 现在 我正在尝试从演员的电影作品中提取电影 ID 列表 但无法做到 例如 我知道 Rodney Dangerfield 在
  • smooth_idf 是多余的吗?

    The scikit learn 文档 http scikit learn org stable modules generated sklearn feature extraction text TfidfTransformer html
  • 如何强制 Y 轴仅使用整数

    我正在使用 matplotlib pyplot 模块绘制直方图 我想知道如何强制 y 轴标签仅显示整数 例如 0 1 2 3 等 而不显示小数 例如 0 0 5 1 1 5 2 等 我正在查看指导说明并怀疑答案就在附近matplotlib
  • Django 接受 AM/PM 作为表单输入

    我试图弄清楚如何使用 DateTime 字段在 Django 中接受 am pm 作为时间格式 但我遇到了一些麻烦 我尝试在 forms py 文件中这样设置 pickup date time from DateTimeField inpu
  • 获取调用者文件的绝对路径

    假设我在不同的目录中有两个文件 1 py 比如说 在C FIRST FOLDER 1 py and 2 py 比如说 在C SECOND FOLDER 2 py 文件1 py进口2 py using sys path insert 0 pa
  • scipysolve_ivp() 中的访问时间步长

    我有一个常微分方程系统 正在使用 scipy 的solve ivp 函数求解 它运行良好 但我在访问每个步骤中使用的时间步时遇到问题 我知道solve ivp 将当前时间传递给用户定义的函数 但我需要使用的时间步长 而不是当前时间 为了解决
  • issubclass() 对从不同路径导入的同一类返回 False

    目的是实现某种插件框架 其中插件是同一基类 即 A 的子类 即 B 基类使用标准导入加载 而子类使用 imp load module 从众所周知的包 即 pkg 的路径加载 pkg init py mod1 py class A mod2
  • 在Python中从日期时间中减去秒

    我有一个 int 变量 它实际上是秒 让我们调用这个秒数X 我需要得到当前日期和时间 以日期时间格式 减去的结果X秒 Example If X是 65 当前日期是2014 06 03 15 45 00 那么我需要得到结果2014 06 03
  • 在Python 3.2中,我可以使用http.client打开并读取HTTPS网页,但urllib.request无法打开同一页面

    我想打开并阅读https yande re https yande re with urllib request 但我收到 SSL 错误 我可以使用以下方式打开并阅读页面http client用这个代码 import http client
  • 为什么用字符串和时间增量转置 DataFrame 会转换数据类型?

    这种行为对我来说似乎很奇怪 id列 字符串 在转置后转换为时间戳df如果另一列是时间增量 import pandas as pd df pd DataFrame id 00115 01222 32333 val 12 14 170 df v

随机推荐

  • 使用 html/css3 和 WebView 将图像缩放到屏幕...在图像加载之前出现白屏

    我正在 Android 中使用 WebView 来加载一些本地 html 将图像缩放到屏幕作为背景 但是 当我开始加载 WebView 的活动时 我在图像之前看到了非常短暂的白屏闪烁负载 这不是什么大不了的事 但我想避免这种情况 我尝试将所
  • Django:如何迁移运行时创建的动态模型

    在我的 Django 应用程序中 特定的用户输入将导致创建新模型 这是我用来创建模型并注册它的代码 model type model name ExistingModel attrs admin site register model ad
  • 如何让 Safari 发送 if-modified-since 标头?

    当我生成页面时 我发送标题 HTTP 1 1 200 OK Cache Control private Content Type text html charset utf 8 Last Modified Mon 04 Apr 2011 2
  • PHP 中的 JavaScript 函数 fromCharCode()

    var test String fromCharCode 112 108 97 105 110 document write test Output plain 有没有 PHP 代码可以用作String fromCharCode JavaS
  • CanCan::Ability current_user 方法在哪里定义?

    差不多就是我在标题中提到的内容 我在代码中使用 CanCan Ability 来检查权限和能力 它期望定义一个 current user 方法 我猜它来自 devise 但不确定 我希望覆盖它 最好的方法是什么 被发现了here https
  • JQuery:可以有 3 个输入的滑块吗?

    我想创建一个具有 3 个输入的滑块 我做了很多研究 但找不到比带有 2 个输入的滑块更多的东西 这是代码 http jqueryui com slider range http jqueryui com slider range 如何创建
  • pip - 使用项目文件夹作为安装源

    我想配置pip使用自定义搜索路径从本地文件夹安装包 该文件夹未托管在 PyPI 上 目标是能够运行 pip install user my non published package 并让它安装所述软件包 home myuser proje
  • JSTree 检查所选节点是否为叶子或仅叶子可选

    我创建了一个jstree如下 js tree jstree core data url pageContext request contextPath makeTree plugins types search data function
  • SAM 模板内的 IAM 角色

    如何在 SAM 模板中创建 IAM 角色 就像我在 SAM 包中所做的那样 我尝试了如下 lambdaFunctionRole Type AWS IAM Role Properties AssumeRolePolicyDocument Ve
  • 如何从父文档访问 iframe 内的元素?

    function contents nb name height 1 document getElementById contents iframe height height px 2 var currentIFrame contents
  • 有效 32 位有符号整数的正则表达式

    我很确定这个网站实际上还没有回答这个问题 一劳永逸地 匹配 32 位有符号整数范围内的数字字符串的最小正则表达式是什么 2147483648 to 2147483647 I must使用正则表达式进行验证 这是我可用的唯一选项 我努力了 d
  • 如何将接口转换为 C# 中的类型?

    我有一个返回接口的属性 在调试过程中 我可以中断返回的内容 虽然它是接口 但 Visual Studio 足够聪明 可以知道它实际上是什么派生类型 我认为它正在使用反射或其他东西 我不知道 我的问题是 我可以在运行时获得相同的信息 以便我可
  • 在 Apache Camel 日志中记录简单文本

    可以在 Camel 中记录简单文本 如下所示
  • 按 pandas 中除一个索引列之外的所有内容进行分组

    我的数据分析反复依赖于一个简单但不确定的主题 即 对除外的所有内容进行分组 以这个多索引为例 df accuracy velocity name condition trial john a 1 1 403105 0 419850 2 0
  • 拥有多个文件组是否有助于加快数据库速度?

    目前 我正在开发一个使用 MS SQL Server 2005 进行相当密集计算的产品 在较高的层面上 我的产品的架构基于 运行 的概念 每次我进行一些分析时 它都会存储在一系列中运行表数 每次运行约 100 个表 我遇到的问题是 当运行次
  • 导入 MDC Switch 组件时出现“无法读取未定义的属性‘MDCSwitch’”错误

    我正在使用express和material components web编写一个Node应用程序 但我遇到了一个问题 TextField可以工作 但Switch不能 这是我用来将相关 JS 附加到元素的代码 slice call docum
  • 检测可滚动下拉列表的结尾

    我正在动态生成一个选择选项框 可以有任意数量的选项 当用户向下滚动到框的末尾时 我需要触发一个事件 我将调用服务器并使用更多选项填充选择 这就像创建分页 但是在下拉框中 谁能告诉我如何做到这一点 所以我唯一需要的是当用户滚动到下拉列表的末尾
  • 插件无法加载

    为什么我的插件无法加载 引用了 jquery 和插件链接 该插件名为 请帮我找到代码中缺少的内容
  • 如何设置Y轴高图上点的间隔

    我是第一次使用 highcharts 我试图弄清楚如何将 Y 轴点设置为静态 我使用了 min 0 和 max 140 y 轴上的点为 0 25 50 75 100 125 和 150 其中我希望它为 0 20 40 60 80 100 1
  • 显示 django 对象表

    我需要使用 Django 显示数据库中的表 最明显的方法是手动输入表标题并循环查询结果model objects all 然而 由于很懒 我想自动执行此操作 即通过内省加载模型中的所有字段以显示为列标题 并加载所有字段值以显示为行 这种方法