您的位置:首页 > 编程语言 > Go语言

Django常用配置admin界面等

2017-09-14 14:25 591 查看


取消 settings.py 中 INSTALLED_APPS 中 admin 注释
'django.contrib.admin',


使用south管理数据库

python manage.py schemamigration polls --auto
python manage.py migrate polls


设置 
mysite/urls.py


from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
...
url(r'^admin/', include(admin.site.urls)),


启动服务器
python manage.py runserver
 访问地址 http://127.0.0.1:8000/admin/
增加 poll

增加 polls/admin.py

from django.contrib import admin
from polls.models import Poll

admin.site.register(Poll)


定制管理界面(更改顺序)

a. 定义一个ModelAdmin类对象
b. 把该对象作为注册的第2个参数

class PollAdmin(admin.ModelAdmin):
fields = ['pub_date', 'question']

admin.site.register(Poll, PollAdmin)


定制管理界面(分组)

class PollAdmin(admin.ModelAdmin):
fieldsets = [
(None,               {'fields': ['question']}),
('Date information', {'fields': ['pub_date']}),
]


定制管理界面(折叠)

class PollAdmin(admin.ModelAdmin):
...
('日期信息', {'fields': ['pub_date'], 'classes': ['collapse']}),


增加Choice

内联方式

from django.contrib import admin
from polls.models import Choice, Poll

class ChoiceInline(admin.StackedInline):
model = Choice
extra = 3

class PollAdmin(admin.ModelAdmin):
fieldsets = [
(None,               {'fields': ['question']}),
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]
inlines = [ChoiceInline]

admin.site.register(Poll, PollAdmin)


表格方式

class ChoiceInline(admin.TabularInline):


定制列表的管理界面

普通显示多列

class PollAdmin(admin.ModelAdmin):
# ...
list_display = ('question', 'pub_date', 'was_published_recently')


方法设置属性

was_published_recently.admin_order_field = 'pub_date'
was_published_recently.boolean = True
was_published_recently.short_description = '是否最近发布'


增加一个过滤器

list_filter = ['pub_date']


增加搜索栏

search_fields = ['question']


日期分层过滤

date_hierarchy = 'pub_date'


完整的 PollAdmin 类

class PollAdmin(admin.ModelAdmin):

fieldsets = [
(None,               {'fields': ['question']}),
('日期信息', {'fields': ['pub_date'], 'classes': ['c
b2d5
ollapse']}),
]
inlines = [ChoiceInline]
list_display = ('question', 'pub_date', 'was_published_recently')
list_filter = ['pub_date']
search_fields = ['question']
date_hierarchy = 'pub_date'


定制个人的项目模版

1.建立模版路径并增加到 settings.py 中

1.1 django 的源文件在哪里?

python -c "
import sys
sys.path = sys.path[1:]
import django
print(django.__path__)"

比如我的 virtualenvs 环境的django 的输出结果就是:

~/.virtualenvs/djtest/local/lib/python2.7/site-packages/django

1.2 建立一个项目模版目录并拷贝模版

在项目目录建立一个模版路径 templates,现在路径结果:

~/djtest/mysite
|---mysite
|---polls
|    |---migrations
|---templates
|        |---admin

~/.virtualenvs/djtest/local/lib/python2.7/site-packages/django/contrib/admin/templates/admin


cp base_site.html ~/djtest/mysite/templates/admin/

1.3 更改 settings.py,增加模版的搜索路径

TEMPLATE_DIRS = (
'/home/***/djtest/mysite/templates/'
)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django