Django admin美化插件suit使用示例

下面为您详细讲解“Django admin美化插件suit使用示例”的完整攻略。该攻略包含两条示例说明。

美化Django Admin的插件suits

Django Admin是Django默认自带的后台管理系统,功能强大,但是界面不够美观。为了让Django Admin变得更加优美,我们可以使用插件suits进行美化。

安装suits

我们可以通过pip安装suits插件:

pip install django-suit 

安装结束后,将suits添加到INSTALLED_APPS中:

INSTALLED_APPS = [ 
    # ...other apps... 
    'suit', 
]

最后,在Django的urls.py中添加以下代码:

from django.conf.urls import url 
from django.contrib import admin 
from django.urls import include 
from django.views.generic import TemplateView 

admin.autodiscover() 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^dashboard/$', TemplateView.as_view(template_name='admin/dashboard.html'), name='dashboard'), 
    url(r'^docs/', include('django.contrib.admindocs.urls')), 
    url(r'^', include('your_own_app.urls')), 
]

使用suits

在安装和配置好suits后,我们可以开始使用它了。

settings.py中,添加以下代码以启用suits:

SUIT_CONFIG = { 
    'ADMIN_NAME': 'My App', 
    'LIST_PER_PAGE': 15, 
    'MENU': ( 
        'sites', 
        {'app': 'auth', 'label': '授权', 'icon':'icon-lock'}, 
        {'label': '其他页面', 'icon':'icon-cog', 'models': ('app1.model1', 'app1.model2', 'app2.model1', 'app2.model2')}, 
        {'label': '统计', 'icon':'icon-stats-dots', 'url': '/my-dashboard/'}, 
    ), 
    'SEARCH_URL': '/admin/your_app/your_model/', 
    'MENU_ICONS': { 
        'auth': 'icon-lock', 
        'sites': 'icon-leaf', 
        'app1': 'icon-folder-open', 
        'app2': 'icon-file-text', 
    }, 
    'LIST_PER_PAGE': 50, 
} 

示例1:

一个简单示例,在展示每个模型的列表时,添加模型的描述。

在您的model.py中,添加以下代码:

from django.db import models 

class MyModel(models.Model): 
    name = models.CharField(max_length=30) 
    description = models.TextField() 

    def __str__(self): 
        return self.name 

    class Meta: 
        verbose_name = '我的模型' 
        verbose_name_plural = '我的模型' 

在您的admin.py中,添加以下代码:

from django.contrib import admin 
from myapp.models import MyModel 

class MyModelAdmin(admin.ModelAdmin): 
    list_display = ('name', 'description') 
    search_fields = ('name', 'description') 
    list_per_page = 20 

admin.site.register(MyModel, MyModelAdmin) 

示例2:

一个进阶示例,使用查询过滤器。

在您的model.py中,添加以下代码:

from django.db import models 

GENDER_CHOICES = (('M', '男性'), ('F', '女性')) 
class Person(models.Model): 
    name = models.CharField(max_length=30) 
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES) 
    age = models.IntegerField() 

    def __str__(self): 
        return self.name + ' (' + self.gender+')' 

    class Meta: 
        verbose_name = '我的模型' 
        verbose_name_plural = '我的模型' 
        ordering = ('name',) 

在您的admin.py中,添加以下代码:

from django.contrib import admin 
from myapp.models import Person, GENDER_CHOICES 

class PersonAdmin(admin.ModelAdmin): 
    list_display = ('name', 'gender', 'age') 
    list_filter = ('gender', 'age') 
    search_fields = ('name',) 

admin.site.register(Person, PersonAdmin) 

以上就是“Django admin美化插件suit使用示例”的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django admin美化插件suit使用示例 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 【Django数据库】如何将一个表自定义的key列还原成id列作为key

    例如下表UserVerifyCode,自定义了idUser这个key     修改成如下,去掉idUer的主键属性   使用python manage.py makemigrations,id是新增列,不能为空,所以必须输入默认值     解决办法 Step1:清空表的数据 Step2:上图上选择1方法,输入int(0) Step3: id列我们的都知道,实…

    Django 2023年4月13日
    00
  • 在Django中使用logging模块

    一、Django logging配置 1、在setting.py中配置 # 日志文件存放路径 BASE_LOG_DIR = os.path.join(BASE_DIR, “log”) # Logging配置 LOGGING = { ‘version’: 1, # 保留字 ‘disable_existing_loggers’: False, # 是否禁用Dja…

    Django 2023年4月16日
    00
  • django之render_to_response()

    由于加载模板、填充 context 、将经解析的模板结果返回为 HttpResponse 对象这一系列操作实在太常用了,Django 提供了一条仅用一行代码就完成所有这些工作的捷径。该捷径就是位于 django.shortcuts 模块中名为 render_to_response() 的函数。大多数时候,你将使用 render_to_response() ,…

    Django 2023年4月11日
    00
  • django数据库迁移migration实现

    下面是详细讲解: 什么是数据库迁移? 在进行Django项目开发时,数据库的设计和结构会随着项目的不断迭代而发生变化。为了更好的管理数据库结构,Django提供了数据库迁移这一功能。简而言之,数据库迁移是一项将数据库结构的变更应用到数据库模式中的过程。每个迁移代表一个数据库模式的变更。当你修改了Django项目中的模型之后,你需要对数据库进行迁移以便同步数据…

    Django 2023年5月16日
    00
  • Django 添加自定义包路径

    在设置文件里: import sys sys.path.insert(0,os.path.join(BASE_DIR,”要导包的目录名”)) 用pycharm时,如果导包后没有自动提示,可以把导包的目录名标记为Sources Root

    Django 2023年4月9日
    00
  • Django : No module named urls

    按照 <Python Web Development with Django >  本书的操作,在我们打开Admin,在urls.py中应该按照下面的设置   (r’^admin/’, include(‘django.contrib.admin.urls’)),  但是这样设置总会得到下面的错误提示ImportError: No module n…

    Django 2023年4月13日
    00
  • Django urls.py报错: raise TypeError(‘view must be a callable or a list/tuple in the case of include()

    Django urls.py报错: raise TypeError(‘view must be a callable or a list/tuple in the case of include()   报错信息 “F:\PyCharm 2016.2.2\bin\runnerw.exe” C:\Users\Administrator\AppData\Loca…

    Django 2023年4月10日
    00
  • django DateTimeField和DateField和TimeField

    需要了解跟时间相关的三个modelField, DateTimeField和DateField和TimeField 存储的内容分别对应着datetime(),date(),time()三个对象。     对于auto_now和auto_now_add。两者默认值都为False。     auto_now=Ture,字段保存时会自动保存当前时间,但要注意每次对…

    Django 2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部