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文件。

 

 结果:

 

posted @ 2017-05-03 21:31  vxee  阅读(183)  评论(0编辑  收藏  举报