Natural

           

          Django官方文檔學習筆記:Tutorial: Part 2

              本章主要是介紹如何利用django的admin site功能,根據定義的models,自動生成可以CRUD的表單頁面。
              一、自動生成admin界面
              1、激活admin site功能   
              修改"mysite/settings.py"文件,在INSTALLED_APPS屬性去掉'django.contrib.admin'注釋。
              修改"mysite/urls.py"文件,去掉如下三行的注釋:
          from django.contrib import admin
          admin.autodiscover()

          url(r
          '^admin/', include(admin.site.urls)),
              執行“python manage.py syncdb”命令將該模塊映射到數據庫即可。

              2、啟動開發服務器   
              運行“python manage.py runserver”啟動server(默認8000端口,端口有沖突重新制定,上篇提到過的)。
              啟動成功后,即可以瀏覽器打開“http://127.0.0.1:8000/admin”,用之前創建的super user賬戶登錄了。
              默認還看不到polls,需要把它注冊到admin中。
              在“mysite/polls”目錄下創建admin.py文件,內容如下:
          from django.contrib import admin
          from polls.models import Poll

          admin.site.register(Poll)
              重啟服務器登錄,就可以看到根據Poll模板自動生成的CRUD表單了。

              3、自定義admin表單
              多個屬性時,如何控制各屬性顯示時的先后關系?
              通過修改admin.py,來定義表單顯示的格式.

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

          class ChoiceInline(admin.TabularInline): #    admin.StackedInline
              model = Choice
              extra 
          = 3
              
          class PollAdmin(admin.ModelAdmin):
          #    fields = ['pub_date', 'question']

              fieldsets 
          = [
                      (None,                          {
          'fields': ['question']}),
                      (
          'Date information',    {'fields': ['pub_date'],    'classes': ['collapse']}),
              ]
              inlines 
          = [ChoiceInline]
              list_display 
          = ('question''pub_date''was_published_recently')
              list_filter 
          = ['pub_date']
              search_fields 
          = ['question']
              date_hierarchy 
          = 'pub_date'

          admin.site.register(Poll, PollAdmin)
          admin.site.register(Choice)
              屬性比較少時,直接通過"fields = ['pub_date', 'question']"確定先后順序即可.
              而屬性比較多時,則可通過設置fieldsets來制定顯示效果.
              效果如下圖:

              Poll表單:
              'Date information'            新表單標題;
              'collapse'                         django自帶的隱藏樣式;
              “inlines = [ChoiceInline]”   將Choice表單顯示在Poll中;
              admin.StackedInline         Choice屬性垂直顯示;
              admin.TabularInline          Choice屬性水平顯示;
             
              Poll list記錄:
              修改"mysite/polls/models.py"文件,設置相關屬性的顯示樣式。
          class Poll(models.Model):
              question 
          = models.CharField(max_length=200)
              pub_date 
          = models.DateTimeField('date published')
              
              
          def __unicode__(self):
                  
          return self.question
              
          def was_published_recently(self):
                  
          return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
              was_published_recently.admin_order_field 
          = 'pub_date'
              was_published_recently.boolean 
          = True
              was_published_recently.short_description 
          = 'Published recently?'

              list_display = ('question''pub_date''was_published_recently')  指定poll list記錄頁面顯示那些字段
              list_filter 
          = ['pub_date']    右側的過濾器;django自帶日期選項
              search_fields 
          = ['question']    上端搜索框;制定搜索的屬性范圍,like匹配
              date_hierarchy 
          = 'pub_date'   日期分層導航;根據記錄日期年月日自動分類

              二、自定義admin外觀
              創建“mysite/templates”目錄,修改"mysite/settings.py"文件,在TEMPLATE_DIRS屬性中配置該目錄位置。
              進入django安裝目錄(...\Python27\Lib\site-packages\django\contrib\admin\templates),把你需要修改的文件,拷貝到項目“mysite/templates”目錄下,修改成你需要的效果,服務器啟動時會自動從此處加載。
             

          posted on 2013-05-10 15:35 此號已被刪 閱讀(958) 評論(0)  編輯  收藏 所屬分類: Python

          導航

          統計

          常用鏈接

          留言簿(8)

          隨筆分類(83)

          隨筆檔案(78)

          文章檔案(2)

          相冊

          收藏夾(7)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 乳源| 桃园市| 榆社县| 阳原县| 宁陵县| 从化市| 视频| 湛江市| 吴桥县| 内江市| 垣曲县| 泰和县| 自治县| 运城市| 响水县| 博爱县| 南宁市| 虎林市| 临汾市| 衡山县| 共和县| 玛多县| 肥城市| 靖安县| 曲阳县| 达尔| 托克逊县| 青海省| 大新县| 泰来县| 阜城县| 蒲江县| 桦川县| 合山市| 巴彦淖尔市| 准格尔旗| 三穗县| 福建省| 梓潼县| 博罗县| 论坛|