Django管理扩展

django-admin的Python项目详细描述


Django管理扩展

安装

pip install django-admin

用法

禁用操作:

from django.contrib import admin
from django_admin import DeleteModelAdmin

# Override action ``delete_selected``, call ``delete_model`` for each when ``delete_selected``
class XXXAdmin(admin.ModelAdmin, DeleteModelAdmin):
    def delete_model(self, request, obj):
        obj.delete()
        # Other Codes

# Reopen action ``delete_selected`` after ``admin.site.disable_action('delete_selected')``
class YYYAdmin(admin.ModelAdmin):
    actions = ['delete_selected']

# Disable ``actions``
class ZZZAdmin(admin.ModelAdmin):
    actions = None

导出Excel:

from django.contrib import admin
from django_admin import ExportExcelModelAdmin, AdvancedExportExcelModelAdmin

class XXXAdmin(ExportExcelModelAdmin, admin.ModelAdmin):
    pass

class YYYAdmin(AdvancedExportExcelModelAdmin, admin.ModelAdmin):
    excel_headers = ()
    excel_fields = ()
    excel_fields_exclude = ()
    extra_excel_fields = ()

    def add_extra_excel_fields(self, request, query):
        return []

所有字段只读:

from django.contrib import admin
from django_admin import ReadonlyModelAdmin, Readonly2ModelAdmin

class XXXAdmin(ReadonlyModelAdmin, admin.ModelAdmin):
    """ Readonly for Update. """
    pass

class XXXAdmin(Readonly2ModelAdmin, admin.ModelAdmin):
    """ Readonly for Add/Update. """
    pass

禁用编辑:

from django.contrib import admin
from django_admin import ReadOnlyModelAdmin

class XXXAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):
    pass

* Should add ``django_admin`` in ``INSTALLED_APPS``
```python
INSTALLED_APPS = [
    ...
    'django_admin',
    ...
]
```

禁用添加/删除:

from django.contrib import admin
from django_admin import ChangeOnlyModelAdmin

class XXXAdmin(ChangeOnlyModelAdmin, admin.ModelAdmin):
    pass

禁用添加/更改:

from django.contrib import admin
from django_admin import DeleteOnlyModelAdmin, DeleteonlyModelAdmin

class XXXAdmin(DeleteOnlyModelAdmin, admin.ModelAdmin):
    # DeleteOnlyModelAdmin - All Fields Default Readonly
    # DeleteonlyModelAdmin - All Fields Not Default Readonly
    pass

* Should add ``django_admin`` in ``INSTALLED_APPS``
```python
INSTALLED_APPS = [
    ...
    'django_admin',
    ...
]
```

禁用删除/更改:

from django.contrib import admin
from django_admin import AddOnlyModelAdmin

class XXXAdmin(AddOnlyModelAdmin, admin.ModelAdmin):
    pass

* Should add ``django_admin`` in ``INSTALLED_APPS``
```python
INSTALLED_APPS = [
    ...
    'django_admin',
    ...
]
```

缺点

Will disable ``delete_selected`` for all ``ModelAdmin``
Will lost delete confirm

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javascript如何在jsp中插入单选按钮、复选框和其他输入类型   java如何关闭jetty调试?   并发Java“顺序”信号量   java如果文件已重命名,如何查找文件扩展名?   java使用单选按钮代替下拉/选项集合   java内部HashSet只使用HashMap,但为什么我们选择HashSet而不是HashMap呢?   java Android Studio突然在Logcat中显示太多日志   java我如何使我在Android Studio中制作的每个项目都可以访问“全局JAR库”   java阻止函数在mocking时在构造函数中被调用,Mockito?   已创建类中对象的Java数组   java JPQL:向日期列添加天数   打印Java Scanner在print()语句之前要求用户输入   Java文件系统:UNC路径缺少sharename   java Sendkeys未按预期工作。无法使用sendKeys发送数据   java使用JDBC写回MySQL数据时毫秒值之间的差异   多线程Oracle Java如何锁定一行,以便其他进程无法读取它?   java流通过映射列表并收集特定密钥   java MaxPermSize忽略了Tomcat 7