首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何为django管理页面中的每一行在列表页面上放置一个按钮

在Django管理页面中为每一行放置一个按钮,可以通过自定义模板来实现。以下是一种实现方式:

  1. 创建一个新的Django应用(如果尚未创建):
代码语言:txt
复制
python manage.py startapp custom_admin
  1. custom_admin应用的目录下创建一个名为templates的文件夹,并在其中创建一个名为admin的子文件夹:
代码语言:txt
复制
custom_admin
├── templates
│   └── admin
  1. admin文件夹中创建一个名为change_list.html的模板文件,用于自定义管理页面的列表视图:
代码语言:txt
复制
{% extends "admin/change_list.html" %}

{% block result_list %}
    <table id="result_list">
        <thead>
            <tr>
                {% block result_list_header %}
                    <!-- 添加自定义按钮列 -->
                    <th scope="col" class="column-action">Action</th>
                    {{ headers }}
                {% endblock %}
            </tr>
        </thead>
        <tbody>
            {% block result_list_body %}
                {% for result in results %}
                    <tr class="{% cycle row1,row2 %}">
                        <!-- 添加自定义按钮 -->
                        <td class="action-checkbox">
                            <a href="{% url 'custom_admin:custom_action' result.pk %}">Custom Action</a>
                        </td>
                        {{ result }}
                    </tr>
                {% endfor %}
            {% endblock %}
        </tbody>
    </table>
{% endblock %}
  1. custom_admin应用的urls.py文件中添加一个URL模式,用于处理自定义按钮的点击事件:
代码语言:txt
复制
from django.urls import path

from . import views

app_name = 'custom_admin'

urlpatterns = [
    path('custom_action/<int:pk>/', views.custom_action, name='custom_action'),
]
  1. custom_admin应用的views.py文件中定义custom_action视图函数,用于处理自定义按钮的点击事件:
代码语言:txt
复制
from django.shortcuts import get_object_or_404, redirect

from django.contrib import messages

from django.contrib.admin.views.main import ChangeList

def custom_action(request, pk):
    # 根据主键获取对象
    obj = get_object_or_404(MyModel, pk=pk)
    
    # 执行自定义操作
    # ...

    # 添加成功消息
    messages.success(request, 'Custom action executed successfully.')

    # 重定向回原始的列表页面
    return redirect('admin:myapp_mymodel_changelist')
  1. 在需要使用自定义按钮的模型的admin.py文件中,继承ChangeList类,并指定自定义的模板:
代码语言:txt
复制
from django.contrib import admin

from django.contrib.admin.views.main import ChangeList

from .models import MyModel

class MyModelChangeList(ChangeList):
    def get_template(self, request):
        return ['admin/myapp/mymodel/change_list.html']

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    def get_changelist(self, request, **kwargs):
        return MyModelChangeList

    # 其他模型管理选项
    # ...

现在,当您访问Django管理页面中的列表视图时,每一行都会显示一个名为"Custom Action"的按钮。当点击该按钮时,将执行custom_action视图函数中定义的自定义操作,并显示成功消息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django入门:基于 Django 的 Web 页面开发

功能要求: 具有文章列表页,文章详情页; 文章列表页点击文章可跳转到对应详情页; 文章列表页具有分页功能; 文章详细页具有上下文章跳转; 1、创建项目 使用 PyCharm 创建一个 DJango 项目...2、设置路由 要想实现跳转页面的功能,肯定要设置路由,总体的路由控制都是在 urls 文件中配置的,具体到哪一个页面由 views 控制;由于我们项目是分级的,所以我们要分别配置一下路由信息,首先在子应用程序中新建一个...下面检验一下路由配置是否正确。 首先创建一个首页的前端页面,然后在 views 中创建一个 index 函数,让该函数返回 index HTML 页面。 ?...然后我们先初始化一些数据,这里的数据你可以在上面的管理页面一个一个的复制粘贴导入并保存,也可以写一个脚本自动化完成,如果你都不想的话可以直接用我 github 上面的 数据库配置文件 替换掉你的配置文件...我们需要使用分页插件来分页,记录总页数、每一页中的文章集合、当前页码等信息。

1.5K30
  • Django Pagination 简单分页

    用 Paginator 给文章列表分页 使用上面的一些方法,我们可以实现一个类似于 Django 官方博客一样的简单分页效果,效果如下。...image.png 这里,Django 的官方文档中给出了一个在视图函数中对列表进行分页的示例,这个视图函数获取一个联系人列表并对其分页: from django.core.paginator import...这样首页的文章列表就已经分好页了。 在模板中设置分页导航 接下来便是在模板中设置分页导航,比如上一页、下一页的按钮,以及显示一些页面信息。...-- 如果当前页还有上一页,显示一个上一页的按钮 --> {% if page_obj.has_previous %} 页还有下一页,显示一个下一页的按钮 --> {% if page_obj.has_next %} <a href="?

    2.2K50

    通过 Django Pagination 实现简单分页

    这里 Django 的官方文档中给出了一个在视图函数中对列表进行分页的示例,这个视图函数获取一个联系人列表并对其分页: from django.core.paginator import Paginator...在模板中设置分页导航 接下来便是在模板中设置分页导航,比如上一页、下一页的按钮,以及显示一些页面信息。我们这里设置和 Django 官方博客那样的分页导航样式(具体的样式见上图)。...-- 如果当前页还有上一页,显示一个上一页的按钮 --> {% if page_obj.has_previous %} 页还有下一页,显示一个下一页的按钮 --> {% if page_obj.has_next %} 一点,请求哪一个页面通过 page 查询参数传递给 django 视图,django 会根据 page 的值返回对应页面的文章列表,所以上一页和下一页超链接的 href 属性指向的 url

    93020

    office2021:office2021下载 如何在Office文档页面上放置水印

    目录: 第一部分:认识office2021 第二部分:office2021系统配置要求 第三部分:如何在Office文档页面上放置水印? 图片 题外话: 山高路远,看世界,也找自己。...office是一款广泛使用的办公软件套装,它包含了多种不同的应用程序,如Word、Excel、PowerPoint、Outlook等。...需要10GB 第三部分:如何在Office文档页面上放置水印?...如何在Office文档页面上放置水印?一个水印是一个苍白的图像或后面出现在Office文档中的每个页面上的文本字集。水印非常优雅,是Word 2011中最简单的格式化技巧之一。...要为文档的每一页创建水印,请转到“布局”选项卡,然后单击“水印”按钮。将打开“插入水印”对话框。选择所需的水印类型: 图片水印:选择图片,单击选择图片按钮,然后在“选择图片”对话框中选择图片。

    2.6K40

    利用微搭低代码开发每周菜谱小程序(一)

    查看功能开发 在列表页我们使用了低代码定义了点击事件,也将菜谱的主键传入到了查看页面,我们讲解一下如何在查看页面获取数据并进行展示 新建页面 先在页面管理创建一个新页面,页面id要和低代码的pageId...保持一致 [在这里插入图片描述] 接着我们考虑页面的布局,我们在移动端的信息一般是从上到下,每一行展示一个信息,切换到组件页签,我们还是先添加列表容器,并且修改标题为菜谱信息查看 [在这里插入图片描述]...点击变量管理 [在这里插入图片描述] 我们先需要在详情页定义一个参数变量,用来接收列表页面传递过来的参数,记着变量的名称要和列表页低代码里命名保持一致 [在这里插入图片描述] 然后定义一个状态变量来获取菜谱的具体信息...新增功能开发 数据查询的功能做好后,我们就接着开发新增的功能,我们先在列表页面上增加一个按钮,用来引导新增页面 [在这里插入图片描述] 我们给按钮定义个点击事件,选择平台的方法导航就可以 [在这里插入图片描述...] 添加好后我们需要创建新增页面,在页面管理增加一个页面即可 [在这里插入图片描述] 回到列表页面将按钮的导航页面设置为刚才的页面 [在这里插入图片描述] 接着在新增页面先放置一个表单容器 [在这里插入图片描述

    1.9K30

    Django教程 —— 站点后台管理

    后台管理 假设我们要设计一个新闻网站,我们需要编写展示给用户的页面,网页上展示的新闻信息是从哪里来的呢?是从数据库中查找到新闻的信息,然后把它展示在页面上。...那么问题来了,老板说我们需要在建立一个新网站,是不是还要设计一个页面来实现对新网站数据库的增删改查操作,但是这样的页面具有一个很大的重复性,那有没有一种方法能够让我们很快的生成管理数据库表的页面呢?...Django后台管理对数据库表操作 上篇讲到在项目的 shell 终端对数据库表的操作,现在我们来看看Django后台对数据库表的操作 查询 点击"Book Infos"可以进入列表页,默认只有一列。...自定义后台管理界面 在列表页只显示出了 BookInfo object ,对象的其它属性并没有列出来,查看非常不方便。 Django提供了自定义管理页面的功能。 比如列表页要显示哪些值。...注意: 如果不写 verbose_name_plural 属性则模型类 BookInfo 在浏览器界面上的中文后面会多一个 S。

    2.1K10

    Django教程 —— 站点后台管理

    后台管理 假设我们要设计一个新闻网站,我们需要编写展示给用户的页面,网页上展示的新闻信息是从哪里来的呢?是从数据库中查找到新闻的信息,然后把它展示在页面上。...那么问题来了,老板说我们需要在建立一个新网站,是不是还要设计一个页面来实现对新网站数据库的增删改查操作,但是这样的页面具有一个很大的重复性,那有没有一种方法能够让我们很快的生成管理数据库表的页面呢?...Django后台管理对数据库表操作 上篇讲到在项目的 shell 终端对数据库表的操作,现在我们来看看Django后台对数据库表的操作 查询 点击 Book Infos 可以进入列表页,默认只有一列...Django提供了自定义管理页面的功能。 比如列表页要显示哪些值。 打开 admin.py 文件,自定义类,继承自 admin.ModelAdmin 类。...注意: 如果不写 verbose_name_plural 属性则模型类 BookInfo 在浏览器界面上的中文后面会多一个 S。

    1.6K20

    基于hadoop生态圈的数据仓库实践 —— OLAP与数据可视化(四)

    Hue应用运行在Web浏览器中,不需要安装客户端。其体系结构如下图所示。 ?...“管理”包括编辑配置文件和管理用户子菜单。 这些是Hue主要的功能,每个主功能下面的详细页面这里就不展示了,都是页面操作,感兴趣的点击试一下便知。...CDH 5.7.0缺省安装时,Hue的元数据存储在一个嵌入式数据库SQLite中,但这种配置并不适用于生产环境。...在Cloudera Manager管理控制台中,从服务列表中点击“Hue”进入Hue服务状态页面。 选择“操作” > “停止”,停止Hue服务,如下图所示。 ?...[mysqld] sql_mode=STRICT_ALL_TABLES 在MySQL中建立一个新的数据库并授予一个Hue用户该库的管理员权限,例如:mysql> create database hue;

    1.2K30

    django 1.8 官方文档翻译:13-6 分页

    分页 Django提供了一些类来帮助你管理分页的数据 – 也就是说,数据被分在不同页面中,并带有“上一页/下一页”标签。这些类位于django/core/paginator.py中。...示例 向Paginator提供对象的列表,以及你想为每一页分配的元素数量,它就会为你提供访问每一页上对象的方法: >>> from django.core.paginator import Paginator...exception EmptyPage[source] 当向page()提供一个有效值,但是那个页面上没有任何对象时抛出。...``start_index()[source] 返回当前页上的第一个对象,相对于分页列表的所有对象的序号,从1开始。...``end_index()[source] 返回当前页上的最后一个对象,相对于分页列表的所有对象的序号,从1开始。

    40530

    关于“Python”的核心知识点整理大全60

    在本章中,我们就该如何保护用户数据所做的决策表明,与人 合作开发项目是个不错的主意:有人对项目进行检查的话,更容易发现其薄弱环节。 至此,我们创建了一个功能齐备的项目,它运行在本地计算机上。...--/.nav-collapse --> 第一个元素为起始标签。HTML文件的主体包含用户将在页面上看到的内容。1处是 一个 元素,表示页面的导航链接部分。...选 择器决定了特定样式规则将应用于页面上的哪些元素。 在2处,这个模板定义了一个按钮,它将在浏览器窗口太窄、无法水平显示整个导航栏时显 示出来。...如果用户单击这个按钮,将出现一个下拉列表,其中包含所有的导航元素。在用户缩小 浏览器窗口或在屏幕较小的移动设备上显示网站时,collapse会使导航栏折叠起来。...导航栏其实就是一个以 打头 的列表(见5),其中每个链接都是一个列表项()。

    13610

    微搭低代码基础开发教程-编辑器介绍

    在应用管理,点击应用的编辑按钮可以进入到编辑器中 [在这里插入图片描述] [在这里插入图片描述] 我们可以通过点击更多,点击编辑器指引来学习每个部分的具体功能 [在这里插入图片描述] 中间部分是编辑预览区...、样式及事件 [在这里插入图片描述] 顶部是菜单区,一般我们代码编辑完后需要提交到服务器里,日常的预览发布也需要在菜单上操作 [在这里插入图片描述] 我们在数据源中定义的数据,如果需要在页面上使用的,往往需要在变量管理里定义...[在这里插入图片描述] 在组件的数据页签,每个属性旁边的超链接图标是可以进行数据绑定的,主要是为了进行数据的显示 [在这里插入图片描述] 页面管理和页面编辑 编辑器左侧的第一个图标可以进行页面管理,如果我们需要新建一个页面...,点击创建新页面的按钮即可 [在这里插入图片描述] 创建页面时候需要录入页面的标题和ID,标题按照页面规划命名,如列表页面、新增页面、修改页面、详情页面等,ID的话是用来页面做跳转的时候使用,使用有意义的英文进行命名如...在这里插入图片描述] 通用组件主要是一些常规的组件如按钮、文本、图片、图标等 [在这里插入图片描述] 容器分类主要包括了容器、滚动容器、轮播等,我们显示类的组件一般是需要放置到容器里才可以控制样式 [在这里插入图片描述

    1.2K20

    网页制作105个问答

    有时链接发生在一个网页里,比如页面上半部分列出了目录,下部分就列出了内容,而单击目录任何一个项目都可以跳到指定部分,可以在要被链接的内容部分设置如下方式:   而要链接到以上设置的部分...35.如何让提交表单后打开一个新窗口显示提交结果? 如果你的站点上有邮件列表服务,每当访问者订阅并按下订阅按钮后。...因为邮件列表需要订阅确定,而这种服务多为第三方提供的,所以订阅确定页会连接到服务商的页面。这样有时会照成访问者离开了站点。...target是链接标签的属性,它的作用就是指定目标窗口,target有以下几个值: _self-将链接指向的内容装载到当前页的窗口或框架中 _top-完全取代当前页面的所有框架 _blank-为链接指向的内容打开一个新的窗口...如: 67.如何为链接提供一个按钮?

    4.7K20

    零基础使用Django2.0.1打造在线教育网站(一):项目介绍

    点击公开课:你可以看到课程列表,排序-搜索。热门课程推荐和课程的分页。 点击课程:你可以在课程详情页中对课程进行收藏和取消收藏。同时可以采用富文本对课程内容进行展示。...机构列表页右侧有快速提交我要学习的表单,之后你便可以开始学习了。 点击机构:它的左侧会呈现:机构首页,机构课程,机构介绍,机构讲师这四部分。 后台管理系统可以切换主题。...左侧每一个功能都有列表显示,具有增删改查,筛选功能。 课程列表页可以对不同字段进行排序。你可以选择多条记录进行删除操作。...课程列表页:点击过滤器,选择字段范围开始搜索,结果可以导出csv,xml,json等格式文本。 你可以在课程新增页面上传图片,和进行富文本的编辑,时间选择,添加章节,添加课程资源等。...学完过后 你不仅对Django的基础知识有了一个比较深刻的印象,还对MTV,MVC模式有了一个更加全面的了解,举一反三,你可以利用它开发各种类型的网站,如电商购物,在线旅游,公司官网,个人博客等其他网站

    1.7K50

    Django教程第1章 | 快速入门 | 基础知识

    安全性: Django 内置了一些安全性功能,例如防止常见的 Web 攻击(如 CSRF 攻击),并提供了方便的用户身份验证和授权系统。...除了以上三层之外,还需要一个 URL 分发器,它的作用是将一个个 URL 的页面请求分发给不同的 View 处理,View 再调用相应的 Model 和 Template,MTV 的响应模式如下所示:...而在默认的页面显示中,将两者分离开来,无法体现出两者的从属关系。我们可以使用内联显示,让 Tag 附加在 Contact 的编辑页面上显示。...在 Contact 输入数条记录后,Contact 的列表页看起来如下: 我们也可以自定义该页面的显示,比如在列表中显示更多的栏目,只需要在 ContactAdmin 中增加 list_display...: 搜索功能在管理大量记录时非常有用,我们可以使用 search_fields 为该列表页增加搜索栏: admin.py from django.contrib import admin from TestModel.models

    30810

    独立站接入接入QQ一键登陆流程

    网站接入申请 网站接入前,需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权。 2.1 添加网站 开发者注册成功后,会跳转到“管理中心”页面。...在管理中心,点击申请的网站下的“编辑信息”,进入编辑页面,点击右上角的“编辑”按钮,页面进入编辑状态,即可对网站信息进行修改和完善,如下图所示: 3....、注册页面上放置“QQ登录”标识(见红色方框标记处): 网站需要下载官方提供的“QQ登录”按钮图片,并按照UI规范将按钮放置在页面合适的位置。...成功登录后,弹出授权框引导用户授权(仅在第一次成功登录,以及第一次访问某个未授权的OpenAPI时会出现授权页),如下图所示: 授权框中的授权列表由网站自行配置,详见scope参数说明。...该攻略对于一般网站和WAP网站接入都适用,每一步中WAP网站接入时需特别注意的地方特别用红色标注。 基于OAuth2.0协议:接入过程详见OAuth2.0开发文档。

    2.3K30

    Django 实现分页功能

    第一个参数是数据源,可以是一个列表、元组、以及查询结果集 QuerySet。第二个参数需要传入一个整数,表示每页显示数据条数。...10 条, 进行分割 paginator = Paginator(book_list, 10) 上面代码中,我们传入一个名为 book_list 的列表,该列表中含有 25 本书,然后我们给 Paginator...如果 number = 1,那么 page() 返回的对象是第一分页的 Page 对象。在前端页面中显示数据,我们主要的操作都是基于 Page 对象。...具体用法如下: # 使用 paginator 对象返回第 1 页的 page 对象 books = paginator.page(1) Page 对象有三个常用的属性: object_list: 表示当前页面上所有对象的列表...当拿到视图传递过来的 books(books 是一个 Page 对象), 就在 for 循环中打印数据。最后使用 books 根据页面情况展示上一页按钮,当前页数,总页数,下一页按钮。

    1.5K20

    【玩转全栈】----靓号管理系统实现

    数据库设置 新建一个数据库(或者就用之前部门、用户管理的也行),用Django连接到数据库: DATABASES = { "default": { "ENGINE": "django.db.backends.mysql...(对象) # 加上instance=row_object会默认将对应ID的数据显示到页面输入框中,这就比之前的部门管理要方便很多 form = VanitynumberForm...分页 一般逻辑 当数据量很大的时候,页面会向下延伸很长,这样不仅影响观感,还浪费空间,可以设置分页功能,为每一页都设置一个最大数据量。...page={i}"> 但如果页数很多的话,html文件会很长,而且也不利于一些更复杂的操作,可以在视图函数中以字符串的形式传给html页面,但直接传的话会报错,Django无法正常将字符串标签转换为标签...动态页码 但如果数据量足够多,页码也会很多,在页面中也显示不完,或者说看着很丑,这时,可用动态页码加以改进: 我们希望在页面上展示的页码数不能超过一定的阈值(这里是11)。

    6900
    领券