首页 > 代码库 > Django 应用开发(2)

Django 应用开发(2)

1.创建一个管理员用户

创建一个用于登录管理站点的用户

技术分享

2.启动开发服务器

python manage.py runserver

打开浏览器访问本地域名中的/admin/

技术分享

3.让poll应用在管理站点中可编辑

在polls/admin.py中编辑

技术分享

4.修改界面

在polls/admin.py中编辑

 1 from django.contrib import admin
 2 from .models import Choice,Question
 3 
 4 class ChoiceInline(admin.TabularInline):
 5     model = Choice
 6     extra = 3
 7 
 8 class QuestionAdmin(admin.ModelAdmin):
 9     fieldsets = [
10         (None,{fields:[question]}),
11         (Date information,{fields:[pub_date],classes:[collapse]})
12     ]
13     inlines = [ChoiceInline]
14 admin.site.register(Question,QuestionAdmin)
15 # Register your models here.

技术分享

自定义管理界面中的变更列表

admin.py

 1 from django.contrib import admin
 2 from .models import Choice,Question
 3 
 4 class ChoiceInline(admin.TabularInline):
 5     model = Choice
 6     extra = 3
 7 
 8 class QuestionAdmin(admin.ModelAdmin):
 9     list_display = (question,pub_date,was_published_recently)
10     fieldsets = [
11         (None,{fields:[question]}),
12         (Date information,{fields:[pub_date],classes:[collapse]})
13     ]
14     inlines = [ChoiceInline]
15     list_filter = [pub_date] 
16     search_fields = [question]
17     
18 admin.site.register(Question,QuestionAdmin)
19 # Register your models here.

 

models.py

 1 from __future__ import unicode_literals
 2 
 3 import datetime
 4 from django.db import models
 5 from django.utils import timezone
 6 
 7 
 8 class Question(models.Model):
 9     question = models.CharField(max_length=200)
10     pub_date = models.DateTimeField(date published)
11     
12     def __str__(self):
13         return self.question
14         
15     def  was_published_recently(self):
16         return self.pub_date >=timezone.now() - datetime.timedelta(days=1)
17     
18     was_published_recently.admin_order_field = pub_date
19     was_published_recently.boolean = True
20     was_published_recently.short_description = Published recently?
21 
22     
23 class Choice(models.Model):
24     poll  = models.ForeignKey(Question)
25     choice_text = models.CharField(max_length=200)
26     votes = models.IntegerField(default=0)
27     
28     def  __str__(self):
29         return self.choice_text
30 
31 # Create your models here.

界面:

技术分享

自定义站点的外观

在templates中添加dirs选项

技术分享

创建templates文件夹

技术分享

在settings.py中添加。现在,在templates下创建一个名为admin的文件夹,然后从Django安装的原目录下(目录为django/contrib/admin/templates)将模板页面的源文件admin/base_site.html拷贝到这个文件夹里。并修改其中的html文件。

技术分享

 

技术分享

 结果:

技术分享

 

Django 应用开发(2)