下面为您详细讲解“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技术站