Django 基础教程

Django 查询

Django 展示数据

Django Admin

Django 模板

Django 表单组件

Django 高级

Django FAQ

django admin 行按钮


在 Django Admin 中,行按钮是一种自定义操作,可以在每一行的记录旁边显示,用于执行特定的任务或操作。以下是几种实现 Django Admin 行按钮的方式,每种方式都附有详细的步骤和示例代码。

假设我们有一个模型叫做 Book,它有 titleauthor 字段。我们将以此模型为例来演示以下不同的行按钮实现方式。

注意:以下示例代码假定你已经有一个 Django 项目,并且已经定义了相关的模型和 Admin 类。

方式一:使用 actions

actions 是 Django Admin 中的一种内置功能,它允许你在选定的行上执行批量操作。尽管它不是严格意义上的“行按钮”,但在某些情况下可以用作类似的解决方案。

步骤流程:

  1. 在你的 admin.py 文件中导入你的模型和 admin 类。
  2. 定义一个函数来执行你想要的操作,并在函数上方添加一个描述。
  3. 在你的 admin 类中使用 actions 属性来注册这个函数。

示例代码:

from django.contrib import admin
from .models import Book

class BookAdmin(admin.ModelAdmin):
    list_display = ['title', 'author']

    def mark_as_published(self, request, queryset):
        queryset.update(published=True)
    mark_as_published.short_description = "Mark selected books as published"

    actions = [mark_as_published]

admin.site.register(Book, BookAdmin)

方式二:自定义行方法

这种方式允许你为每一行添加自定义的操作按钮。

步骤流程:

  1. 在你的 admin.py 文件中导入你的模型和 admin 类。
  2. 在你的 admin 类中定义一个方法来执行你想要的操作,并在方法上方使用 short_description 属性来设置按钮的显示文本。
  3. list_display 中添加方法名,以便在每一行中显示这个操作按钮。

示例代码:

from django.contrib import admin
from .models import Book

class BookAdmin(admin.ModelAdmin):
    list_display = ['title', 'author', 'custom_publish_button']

    def custom_publish_button(self, obj):
        if not obj.published:
            return '<a href="#">Publish</a>'
        else:
            return '<span style="color: green;">Published</span>'
    custom_publish_button.allow_tags = True
    custom_publish_button.short_description = "Custom Publish Button"

admin.site.register(Book, BookAdmin)

这种方式允许你将整行作为链接,从而实现类似行按钮的效果。

步骤流程:

  1. 在你的 admin.py 文件中导入你的模型和 admin 类。
  2. admin 类中将 list_display_links 属性设置为一个方法名或字段名,使整行变成一个链接。

示例代码:

from django.contrib import admin
from .models import Book

class BookAdmin(admin.ModelAdmin):
    list_display = ['title', 'author', 'published']
    list_display_links = ['title']

admin.site.register(Book, BookAdmin)

这将会使 title 字段的整行变成一个链接,点击链接将导致进入编辑页。

这些是在 Django Admin 中实现行按钮的几种方式。根据你的需求和设计,你可以选择适合你情况的方式来自定义行操作。

DjangoAdmin是DjangoWeb框架提供的一个功能强大的自动生成后台管理界面的工具。MVT和MVC(Model-View-Cont ...
在这个例子中,我将展示如何创建一个基本的Django-Vue管理界面,其中Django作为后端API,而Vue.###步骤1:Django后 ...
在Django中,你可以通过自定义admin页面来扩展和改进Django默认提供的管理界面。py`文件中,添加以下代码:这里我们使用了`@s ...
下面将结合示例代码描述每种方式:</p><h3>使用HTML链接标签(a标签)</h3><p>HTML链接标签<code>&lt;a&gt; ...
Django的Admin界面是一个强大且可定制的后台管理界面,你可以通过定制Admin模板来改变其外观和行为。py`中进行设置:###Dja ...