Django 内联管理员的操作
项目描述
易于使用的 Django 管理内联操作
安装
安装 django_inlines_actions
pip install django_inlines_actions
将inlines_actions添加到您的INSTALLED_APPS中。
将InlineActionsModelAdminMixin添加到您的ModelAdmin中。
将InlineActionsMixin添加到您的TabularInline中。
将inline_actions属性添加到您的TabularInline作为您的操作的元组。
inline_actions = ('your_action_name', 'another_action_name',)
每个动作都必须有以下签名:
def your_action_name(self, request, obj, parent_obj):
用法
Action 基本上是指向另一个具有相应视图的 url 的链接。它不像其他一些解决方案那样依赖于表单,并且不会在Enter命中时执行。Action 应该返回None以返回当前的 changeform 或HttpResponse实例。如果您想禁用Actions列,请将inline_actions设置为None。
inline_actions = ('change_title',) def change_title(self, request, obj, parent_obj): obj.title = obj.title + ' | ' + parent_obj.name obj.save()
特征
权限
权限是列表/元组类的实例,可以是自定义函数或 django 内置权限。
def your_action_name(self, request, obj, parent_obj): pass your_action_name.permissions = ('permission_func_name', 'django_builtin_permission_name',)
权限函数必须具有以下签名:
def permission_func_name(self, request, obj, parent_obj):
必须返回False才能通过权限检查,否则权限将通过。
如果权限返回False,则不会为用户呈现操作,并且操作将在执行时引发PermissionDenied 。
简短的介绍
简短描述是自定义函数或简单字符串。
def your_action_name(self, request, obj, parent_obj): pass your_action_name.short_description = 'My Uniq Description'
your_action_name.short_description = 'short_description_func_name'
short_description 函数必须具有以下签名:
def short_description_func_name(self, request, obj, parent_obj):
CSS类
Css 类是自定义函数或简单字符串。
def your_action_name(self, request, obj, parent_obj): pass your_action_name.css_class = 'my-css-class-name'
your_action_name.css_class = 'css_class_func_name'
css_class 函数必须具有以下签名:
def css_class_func_name(self, request, obj, parent_obj):
例子
from django.contrib import admin
from inlines_actions import InlineActionsModelAdminMixin, InlineActionsMixin
from .models import Article1, Author1
class ArticleInline(
InlineActionsMixin,
admin.TabularInline,
):
model = Article1
inline_actions = ('make_published',)
def make_published(self, request, obj, parent_obj):
obj.is_published = not obj.is_published
obj.save()
def make_published_permission(self, request, obj, parent_obj):
if not request.user.is_superuser:
return False
def make_published_short_description(self, request, obj, parent_obj):
return 'Published Make'
def make_published_css_class(self, request, obj, parent_obj):
return 'some_class'
make_published.permissions = ('make_published_permission', 'example_app:can_change_article')
make_published.short_description = make_published_short_description
make_published.css_class = make_published_css_class
class AuthorAdmin(
InlineActionsModelAdminMixin,
admin.ModelAdmin,
):
inlines = (ArticleInline,)
admin.site.register(Author1, AuthorAdmin)
测试
pip install requirements.txt tox
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
django_inlines_actions-0.4.tar.gz
(9.1 kB
查看哈希)
内置分布
关
django_inlines_actions -0.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0bd13a482b4d313e14b6d57f2b4428c5f6e04d552479532823be32fafc90060c |
|
MD5 | 1bc6904dd63e092490f1d400ce29ca6c |
|
布莱克2-256 | 10d9de645bb4411d150c6baccaf214317c2d4e477d7b7e2e809c537f155e4fe0 |
关
django_inlines_actions -0.4-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3d2344025a045b242b01ea0ec09028ba50cf7d21f0d149133497c95df112559f |
|
MD5 | dc9a994be6a7c7edfe6a2bb804e62a26 |
|
布莱克2-256 | 8d025388491c6f11de66429805c200778b55b985e0258f8b375c9ea60bb1d022 |