Django(Chapter06 Django 사이트 관리)
관리 도구는 기술 차원에서 보면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',)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.