Django(Chapter06 Django 사이트 관리)

9846 단어 django사이트
1. Django 자동 관리 도구는django입니다.contrib의 일부분.
관리 도구는 기술 차원에서 보면django라고 불린다.contrib.admin.
   django.사용자 감별 시스템 (django.contrib.auth) 과 같은 다른 사용 가능한 기능 지원
익명 세션 (django.contrib.sessioins) 및 사용자 평가 시스템
   (django.contrib.comments).
2. 관리 인터페이스 활성화
   $ pwd
  /home/tony/djcode/mysite
   $ vim settings.py
  

    INSTALLED_APPS = (
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',    
        'django.contrib.sites',       
        'django.contrib.messages',    
        'django.contrib.staticfiles', 
        # Uncomment the next line to enable the admin:
        'django.contrib.admin',                       
        # Uncomment the next line to enable admin documentation:
        'django.contrib.admindocs',                             
        'mysite.books',                                         
    )     
   

  

    MIDDLEWARE_CLASSES = (
        'django.middleware.common.CommonMiddleware',
        #'django.middleware.locale.LocaleMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',           
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',   
    ) 
   

관리 인터페이스에 사용되는 데이터베이스 테이블을 생성하려면 다음과 같이 하십시오.
  

    $ python manage.py syncdb
   

관리자 계정을 만들려면 다음과 같이 하십시오.
  

    $ python manage.py createsuperuser
   

admin 액세스를 URLconf(urls.py)로 구성하려면 다음과 같이 하십시오.
   $ vim urls.py
  

    from django.conf.urls.defaults import patterns, include, url   
    # Uncomment the next two lines to enable the admin:
    from django.contrib import admin                   
    admin.autodiscover()                               

    urlpatterns = patterns('',
        # Uncomment the admin/doc line below to enable admin  
            documentation:
        (r'^admin/doc/', include('django.contrib.admindocs.urls')),
        # Uncomment the next line to enable the admin:
        (r'^admin/', include(admin.site.urls)),
    )
   

개발 서버 시작
   $ python manage.py runserver 8080
액세스:
   http://localhost:8080/admin/
3. 로컬화된 언어 표시를 구성합니다.
   $ vim settings.py
  

    MIDDLEWARE_CLASSES = (
        'django.middleware.common.CommonMiddleware',
        #       ,         
        'django.middleware.locale.LocaleMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',           
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',   
    )     
   

  
4. Admin 관리에 자신의 Models 추가:
   $ cd books
   $ pwd
  /home/tony/djcode/mysite/books
   $ vim admin.py
  

    from django.contrib import admin             
    from mysite.books.models import Publisher, Author, Book

    admin.site.register(Publisher)
    admin.site.register(Author)
    admin.site.register(Book)
   

  
서비스 재시작
   $ CTRL + C
   $ python manage.py runserver 8080
액세스:
   http://localhost:8080/admin/
북스가 이미 추가된 것을 발견했다.
5. 설정 필드 선택 사항:
예:
   $ vim models.py
  

    class Author(models.Model):
        first_name = models.CharField(max_length=30)
        last_name = models.CharField(max_length=40)
        #     ,   email,blank=True, null=True,         
        email = models.EmailField(blank=True, null=True,)

        def __unicode__(self):
            return u'%s%s'% (self.first_name, self.last_name)
   

일반적으로 Blank=Ture는 필드를 선택할 수 있지만 날짜형(DateField,
TimeField, DateTimeField) 또는 숫자형(IntegerField, DecimalField,
FloatField)에는 null=True와 Blank=True가 필요합니다.
6. 사용자 지정 필드 레이블
   $ vim models.py
  

    class Author(models.Model):
        first_name = models.CharField(max_length=30)
        last_name = models.CharField(max_length=40)
        #     ,   verbose_name,    admin       
        # verbose_name      ,    Email。
        email = models.EmailField(blank=True, null=True, \
                 verbose_name='e-mail')
   

서버를 다시 시작하면 변경 사항이 적용됩니다.
7. 사용자 지정 목록:
   $ vim admin.py
  

    from django.contrib import admin             
    from mysite.books.models import Publisher, Author, Book

    class AuthorAdmin(admin.ModelAdmin):
        #    list_display     
        list_display=('first_name', 'last_name', 'email')
 
    class BookAdmin(admin.ModelAdmin):
        list_display=('title', 'publisher', 'publication_date',)

    admin.site.register(Publisher)
    admin.site.register(Author, AuthorAdmin)
    admin.site.register(Book,BookAdmin)
   

페이지를 새로 고치면 Author가 3열을 표시하고 더 이상 당초의 열이 아니라는 것을 알 수 있습니다.
빠른 검색 표시줄 추가
   $ vim admin.py
  

    class AuthorAdmin(admin.ModelAdmin):
        list_display=('first_name', 'last_name', 'email')
        #              
        search_fields=('first_name', 'last_name')
   

 
필터:
  

    class BookAdmin(admin.ModelAdmin):
        list_display=('title', 'publisher', 'publication_date',)
        # list_filter,            publication date    
        list_filter = ('publication_date',)
   

  
다른 필터:
  

    class BookAdmin(admin.ModelAdmin):
        list_display=('title', 'publisher', 'publication_date',)
        list_filter = ('publication_date',)
        # date_hierachy                   
        date_hierarchy = 'publication_date'
   

기본 정렬 방식을 변경하려면 다음과 같이 하십시오.
  

    class BookAdmin(admin.ModelAdmin):
        list_display=('title', 'publisher', 'publication_date',)
        list_filter = ('publication_date',)
        date_hierarchy = 'publication_date'
        # ordering,        Publication date         
        #       ,    
        ordering=('-publication_date',)
   

8. 편집 양식 사용자 정의
  

    class BookAdmin(admin.ModelAdmin):
        list_display=('title', 'publisher', 'publication_date',)
        list_filter = ('publication_date',)
        date_hierarchy = 'publication_date'
        ordering=('-publication_date',)
        #   Book       ,    publication_date   
        fields=('title', 'authors', 'publisher',)
   

여러 쌍의 편집 페이지:
  

    class BookAdmin(admin.ModelAdmin):
        list_display=('title', 'publisher', 'publication_date',)
        list_filter = ('publication_date',)
        date_hierarchy = 'publication_date'
        ordering=('-publication_date',)
        # fields=('title', 'authors', 'publisher',)
        #          ,   Author      ,        
        # JavaScript   ,       ,      ,  
        filter_horizontal=('authors',)
   

  

    class BookAdmin(admin.ModelAdmin):
        list_display=('title', 'publisher', 'publication_date',)
        list_filter = ('publication_date',)
        date_hierarchy = 'publication_date'
        ordering=('-publication_date',)
        # fields=('title', 'authors', 'publisher',)
        #filter_horizontal=('authors',)
        # filter_vertical filter_horizontal    ,          
        filter_vertical=('authors',)
   

  
드롭다운 상자가 다중 선택 상자로 변경됩니다.
  

    class BookAdmin(admin.ModelAdmin):
        list_display=('title', 'publisher', 'publication_date',)
        list_filter = ('publication_date',)
        date_hierarchy = 'publication_date'
        ordering=('-publication_date',)
        # fields=('title', 'authors', 'publisher',)
        filter_horizontal=('authors',)
        #filter_vertical=('authors',)
        # raw_id_fields,          publisher   ,    
        #     ,        ,     。
        raw_id_fields=('publisher',)
   

  

좋은 웹페이지 즐겨찾기