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

django学习笔记(2)

2015-04-27 15:53 176 查看
[b]Part 2: The admin site [/b]

[b]====> Creating an admin user[/b]
$ python manage.py createsuperuser
Username: admin
Email address: admin@example.com
Password: **********
Password (again): *********
Superuser created successfully.

[b]====> Start the development server [/b]
$ python manage.py runserver

[b]====> Enter the admin site [/b]
(http://127.0.0.1:8000/admin/)

[b]====> Make the poll app modifiable in the admin[/b]
$ edit polls\admin.py

from django.contrib import admin

from .models import Question

admin.site.register(Question)

[b]====> Explore the free admin functionality[/b]

[b]====> Customize the admin form[/b]
$ edit polls\admin.py

from django.contrib import admin

from .models import Question

class QuestionAdmin(admin.ModelAdmin):
fields = ['pub_date', 'question_text']

admin.site.register(Question, QuestionAdmin)

[b]====> Split the form up into fieldsets[/b]
$ edit polls\admin.py

from django.contrib import admin

from .models import Question

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

admin.site.register(Question, QuestionAdmin)

[b]====> Assign arbitrary HTML classes to each fieldset[/b]
$ edit polls\admin.py

from django.contrib import admin

from .models import Question

class QuestionAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question_text']}),
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]

admin.site.register(Question, QuestionAdmin)

[b]====> Adding related objects[/b]
$ edit polls\admin.py

from django.contrib import admin

from .models import Choice, Question
# ...
admin.site.register(Choice)

[b]====> Remove the register() call for the Choice model. Then, change the Question registration code[/b]
$ edit polls\admin.py

from django.contrib import admin

from .models import Choice, Question

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

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

admin.site.register(Question, QuestionAdmin)

[b]====> Change the display style of the related objects in a more compact, table-based format[/b]
$ edit polls\admin.py

class ChoiceInline(admin.TabularInline):
#...

[b]====> Customize the admin change list -- use the list_display admin option[/b]
$ edit polls\admin.py

class QuestionAdmin(admin.ModelAdmin):
# ...
list_display = ('question_text', 'pub_date', 'was_published_recently')

[b]====> Add a “Filter” sidebar -- using the list_filter admin option[/b]
$ edit polls\admin.py

class QuestionAdmin(admin.ModelAdmin):
# ...
list_filter = ['pub_date']

[b]====> Add some search capability[/b]
$ edit polls\admin.py

class QuestionAdmin(admin.ModelAdmin):
# ...
search_fields = ['question_text']

[b]====> Customize the admin look and feel[/b]

[b]====> Customizing your project’s templates[/b]
$ mkdir templates
$ edit mysite\settings.py
TEMPLATES = [
{
# ...
'DIRS': [os.path.join(BASE_DIR, 'templates')],
# ...
},
]
$ mkdir templates\admin
$ copy C:\python34\lib\site-p~1\django\contrib\admin\templates\amdin\base_site.html templates\admin\base_site.html
$ edit tempaltes\admin\base_site.html
# replace {{ site_header|default:_('Django administration') }} with Polls Administration
# ...
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">Polls Administration</a></h1>
{% endblock %}
# ...

[b]====> Customizing your application’s templates[/b]

[b]====> Customize the admin index page[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: