Django - ListView - 循环模板不显示任何项目

2024-02-11

这就是我想要实现的目标:

well_list.html

<thead>
  <tr>
    {% for item in well_info %}
    <th>item</th>
    {% endfor %}
  </tr>
</thead>

项目/urls.py

from django.conf.urls import url, include
from django.contrib import admin
from django.views.generic import TemplateView
from django.urls import path, re_path, include
from eric_base import views

urlpatterns = [
    path('contextual/', include('eric_base.urls')),
    path('well_list/', views.well_list)
]

views.py

from django.shortcuts import render
from django.views.generic import View, TemplateView, ListView, DetailView, CreateView, UpdateView, DeleteView

from . import models

class WellInfoListView(ListView):
    template_name = 'well_list.html'
    context_object_name = 'well_info'
    model = models.WellInfo

模型.py

from django.db import models
from django.urls import reverse


# Create your models here.
class WellInfo(models.Model):
    api = models.CharField(max_length=100, primary_key=True)
    name = models.CharField(max_length=100)
    region_location = models.CharField(max_length=100)
    spud_date = models.CharField(max_length=100)
    well_bore = models.CharField(max_length=100)
    rig_name = models.CharField(max_length=100)
    status = models.CharField(max_length=100)

    def get_absolute_url(self):
        return reverse("")

由于我正确定义了context_object_name = 'well_info' in views.py,我用过{% for item in well_info %}在 html 中,我期望至少能从模型属性中得到一些东西。但是当我运行这段代码时,我什么也没有得到。标题行就消失了,如下图所示:

我希望表头具有 models.py 中定义的属性名称,但显然它没有从中获取任何内容。为什么它没有从中获取任何属性models.py,以及如何仅将属性名称显示为列标题?

所以我希望表头是:

Api | Name | Region Location | Spud Date | Well Bore | Rig Name | Status

没有每个键的值。


您可以尝试使用 Model _meta API。在您的视图中,您可以将字段放入列表中,例如:

from django.shortcuts import render
from django.views.generic import View, TemplateView, ListView, DetailView, CreateView, UpdateView, DeleteView

from .models import WellInfo

class WellInfoListView(ListView):
    template_name = 'well_list.html'
    context_object_name = 'well_info'
    model = WellInfo

    def get_context_data(self, **kwargs):
        ctx = super(WellInfoListView, self).get_context_data(**kwargs)
        ctx['fields'] = [field.name for field in WellInfo._meta.get_fields()]
        return ctx

然后在你的模板中你可以有

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

Django - ListView - 循环模板不显示任何项目 的相关文章

随机推荐

  • 带有 codeigniter 的活动菜单选项卡

    Codeigniter中可以使用什么方法来实现活动菜单选项卡 例如我有一个用户菜单Profile Friends Messages Logout 当我在配置文件控制器中时 URL 是domain com profile some funct
  • JSF 的采用和普及

    只是一个一般性问题 欢迎讨论 到目前为止 我非常喜欢 JSF 我对它还很陌生 但我更喜欢它而不是 Struts 从专业人士的角度来看 您认为 JSF 的未来光明吗 作为一个年轻的程序员 值得投资学习 JSF 2 0 而不是 Struts 或
  • x86 OpCode 指令解码

    我一直在研究 x86 架构的软件开发人员手册 试图提高我的逆向工程技能 我知道该架构很复杂并且向后兼容前几代 随着新一代的出现 一些旧的文档部分被遗漏了 但令人不安的解释和误解之一是与此类似的说明 80 2 ib 因此 基于以下的说明80操
  • 使用 Stripe Firebase 扩展 Webhook 运行订阅付款未触发

    我添加了Stripe 订阅扩展 https firebase google com products extensions firestore stripe subscriptions到我的 Firebase Vue 应用程序 以便我可以为
  • Eclipse 将编译器合规性更新到 1.7

    我在更新 Eclipse 工作区的编译器合规性时遇到一些问题 我实际上使用的是 RTC 但它本质上是 Eclipse 目前 它使用 1 6 的 jdk 因此我可以将 JDK 合规性更改为 1 6 的限制 但是 我在我的项目中使用 jdk 1
  • 从一种安装切换到另一种安装时,Inno setup 会隐藏安装项目

    我应该需要你的帮助 我想知道 Inno 是否有可能为 2 个产品设置 2 个不同的安装掩码 通过从下拉列表中选择 我们将这两种不同的安装称为 SETUP 和 PROGRAM 安装 SETUP 时 我们应该可以选中 取消选中以下复选框 将安装
  • 如何从 Xamarin Forms 中的 Azure B2C 中删除缩放按钮

    我在我的 xamarin forms 应用程序中运行了 azure b2c 它运行良好 但 ui 自定义非常有限 我在登录页面 注册页面上遇到一个问题 忘记了密码 它的底部有一个缩放按钮 这很烦人 因为有时当我尝试按注册时 它会按缩放按钮
  • WooCommerce 中一件免费产品的数量折扣

    我想免费赠送三种产品 如果有人添加了更多数量的商品 我只想免费提供一个数量 这意味着从小计中扣除某一数量的价格 例如 一种产品的价格为 4 添加的总数量为 5 因此小计总计为 20 现在 我想从小计中扣除一个数量的价格 所以 扣除价格后 最
  • 偏移 iframe 内的网页位置

    我有一个 iframe 弹出窗口 应该加载表单 该表单是较大页面的一部分 包含一些输入字段 在这种情况下 加载它的 iframe 宽度限制为大约 1000 像素 充当不同页面的 窗口 有没有办法在加载内容时不对齐 iframe 而是对齐内容
  • C++ 标准中是否有任何计划来解决初始化列表构造函数的不一致问题?

    C 中的初始化列表构造函数经常会引起麻烦 例如 using std vector using std string vector
  • 如何使用 Vue.js 隐藏 div

    我希望能够使用 Vue 隐藏 div 对性能的影响尽可能小 因为网站上的几个 div 都会以这种方式处理 我该怎么做呢 隐藏 div gt 单击另一个 div 时显示它 示例 无 Vue https jsfiddle net 3v65gcg
  • Ag-grid:计算每个过滤器选择的行数

    在我的 ag grid 中我想显示行数在一组过滤器中的每个过滤器选择旁边 也许sort按该计数的选择 降序 默认情况下是这样的 我希望选项显示为 全选 88 凯蒂 泰勒 2 达伦 萨瑟兰 1 约翰 乔 内文 1 巴拉克奥巴马 0 考虑到其他
  • 如何设置IE文档模式?

    在 IE9 中我的浏览器已设置 F10 gt 工具 gt 兼容性视图设置 gt 添加 192 168 10 227 因此 当我尝试提供文件时 浏览器模式是9兼容视图 文档模式是IE7标准 我的问题是 如何将文档模式设置为IE9而不是IE7
  • 如何将“2011-01-12T14:17:55.043Z”这样的日期字符串转换为像 1294841716 这样的长字符串?

    我需要转换此字符串格式的日期 2011 01 12T14 17 55 043Z 到像 1294841716 这样的数字 这是自 1970 年 1 月 1 日以来的秒数 不是毫秒 有没有一种简单的方法来进行这种解析 Update 这是我到目前
  • 排序并删除一行中的重复单词

    The sort命令允许我按字母顺序排列行并删除重复的行 我需要类似的东西 可以对单行上的单词进行排序 将它们按顺序排列 并删除任何重复项 有这个命令吗 E g zebra ant spider spider ant zebra ant 更
  • 如何在填充整个单元格时左对齐Python tkinter网格列

    我正在尝试编写一个 python 类来以表格格式显示数据 我确信已经有一些课程可以做同样的事情 但是 我使用这个练习作为自学 Python 和 tkinter 的方法 在大多数情况下 我让类按照我想要的方式工作 但是我无法让标题和数据单元格
  • jupyter custom.css 删除

    我错误地更新了这个文件来自定义 css D Continuum Anaconda2 Lib site packages notebook static custom custom css 要回滚上述更改 1 我把之前保存的原始文件放回去了
  • 通过 CSS 重复一系列数字

    我正在尝试做这样的事情 h2 1 1 Bananas h2 h3 1 1 1 h3 h3 1 1 2 h3 h3 1 1 3 h3 h2 1 1 Apples h2 h3 1 1 1 h3 h3 1 1 2 h3 h3 1 1 3 h3 h
  • 如何在.NET 中正确地大写希腊单词?

    我们有 ASP NET 应用程序 它在世界各地运行不同的客户端 在此应用程序中 我们有每种语言的词典 在字典中 我们有小写的单词 有时出于印刷原因 我们在代码中将其大写 var greek new CultureInfo el GR str
  • Django - ListView - 循环模板不显示任何项目

    这就是我想要实现的目标 well list html thead tr for item in well info th item th endfor tr thead 项目 urls py from django conf urls im