Django1.8 강좌 - 0부터 완전한django 블로그 구축(二)
당신의 모델을 위해 제어 관리 사이트를 만듭니다
자, 우리는post모델을 정의했습니다. 이제 간단한 관리 사이트를 만들어서post실례를 관리할 것입니다.Django 자체 관리 인터페이스는 강력한 콘텐츠 편집기입니다.Django 관리 사이트는 모델의 메타데이터에 따라 동적으로 만들어지고 내용을 편집하기 편리한 인터페이스를 제공합니다.마찬가지로, 당신은 관리 사이트 내에서 당신의 모듈을 어떻게 보여주는지 사용자 정의할 수 있습니다.
기억해야 할 점은django입니다.contrib.admin이 이미 INSTALLED 에 포함되어 있음APPS 설정에서 수동으로 추가할 필요가 없는 이유입니다.
관리자 권한 사용자 만들기
먼저 관리 사이트에 로그인하여 다음 명령을 실행하는 관리자 권한 사용자를 만들어야 합니다.
python manage.py createsuperuser
사용자 이름, e-mail, 비밀번호를 입력하라는 메시지가 표시됩니다.
Username (leave blank to use 'admin'): admin
Email address: [email protected]
Password: ********
Password (again): ******** Superuser created successfully.
Django 관리 사이트
현재, 개발 서버 (python manage.py runserver) 를 실행하고 브라우저에서 열기http://127.0.0.1:8000/admin/, 당신은 관리 사이트 로그인 인터페이스를 볼 수 있습니다.
방금 만든 관리자 이름과 비밀번호를 입력하고 관리 사이트에 로그인하면 관리 사이트의 첫 페이지를 볼 수 있습니다.
지금 보시는 User와 Group 모듈은 Django의 인증 프레임워크입니다. 이것은 INSTALLEDAPPS의 django.contrib.auth에서 설정한 것입니다.Users를 열면 새로 만든 관리자가 표시됩니다.blog 응용 프로그램의 포스트 모델과 User 모델 사이에 연관이 있습니다.이 연관은 Post 모델의 author 속성에 정의됩니다.
관리 사이트에 모델 추가
현재 저희가 만든 블로그 응용 프로그램의 포스트 모델을 관리 사이트에 추가합니다.블로그 응용 프로그램의admin을 편집합니다.py 파일:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
이제 관리 사이트를 다시 불러오면 Post 모델이 관리 사이트에 추가된 것을 볼 수 있습니다.
이것은 매우 쉽다, 그렇지?Django 관리 사이트에 모델을 등록하면 우호적인 사용자 인터페이스를 얻을 수 있습니다. 대상 목록을 생성할 수 있습니다.그리고 아주 쉽게 편집, 창설, 삭제할 수 있습니다.
Django는 서로 다른 필드에 대해 서로 다른 표 플러그인을 사용합니다. 예를 들어DateTimeField는 관리 사이트에서 자바스크립트 달력 플러그인과 비슷한 인터페이스를 보여 줍니다.모든 내용을 추가한 후 저장 단추를 누르십시오.사이트는post 목록 페이지로 이동하여'post를 성공적으로 추가했다'는 힌트를 줍니다.
관리 사이트의 모듈 디스플레이 사용자 정의
이제 사용자 정의 관리 사이트를 볼 수 있습니다.블로그 앱의admin을 편집합니다.py 파일:
from django.contrib import admin
from .models import Post
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'slug', 'author', 'publish', 'status')
admin.site.register(Post, PostAdmin)
Google은 Django 관리 사이트에 Model Admin에서 계승된 사용자 정의 클래스를 사용하여 Google Post 모델을 관리 사이트에 등록합니다.이 사용자 정의 클래스에서 포스트 모델을 보여주는 방법을 정의했습니다.list_display 속성은 관리 대상 목록 페이지에 표시할 모델 필드를 설정할 수 있습니다.
이제 관리 사이트에 대한 추가 옵션이 추가되었습니다.
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'slug', 'author', 'publish', 'status')
list_filter = ('status', 'created', 'publish', 'author') search_fields = ('title', 'body')
prepopulated_fields = {'slug': ('title',)}
raw_id_fields = ('author',)
date_hierarchy = 'publish'
ordering = ['status', 'publish']
관리 사이트를 다시 로드하면 다음을 볼 수 있습니다.
post 대상 목록 페이지에서list디스플레이에서 전시된 필드를 정의합니다.
목록 페이지에는 오른쪽 칸이 포함되어 있습니다.listfliter가 정의한 필터 필드로 글을 선별합니다.
페이지에 검색 표시줄이 나타납니다.저희가 이미 검색을 사용했기 때문에...fields 속성은 검색 가능한 필드를 정의합니다.
검색란 아래 칸,datehierarchy 속성 정의는 날짜 차원에 기반한 빠른 지향을 제공합니다.
포스터 대상은 Status와Publish에 따라 정렬되며,ordering 속성을 사용하여 기본적인 정렬 방식을 정의할 수 있습니다.
이제 Add post 링크를 클릭하여 post 객체 편집 인터페이스에 들어갑니다.새로 만든post 대상의 제목을title 필드에 입력할 때, slug 필드가 자동으로 해당하는 내용을 채우는 것을 발견할 수 있습니다.저희가 프리populated로...fields 속성은 Django에게 slug가 title의 연관 필드임을 알려줍니다.또한, 현재 저자 필드에는 사용자가 수백, 수천 명에 달할 때, 아래 목록에서 선택하는 것이 매우 불편하기 때문에, 검색 컨트롤이 표시됩니다.
봐라, 우리는 단지 몇 줄의 코드만 사용하고 관리 사이트에서 모델의 관리 방식을 정의했다.Django 관리 사이트를 맞춤형으로 제작하고 확장하는 방법도 많습니다. 뒷부분에서 더 자세히 말씀드리겠습니다.
텍스트 링크:http://www.landsblog.com/blog/content/djangoexamplemanage추가 자습서:http://www.landsblog.com/blog/tag/django
전재 대상:https://www.cnblogs.com/Lands-ljk/p/5719300.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.