Latest web development tutorials

장고 관리자 관리 도구

장고는 웹 기반 관리 도구를 제공합니다.

장고 자동화 된 관리 도구 django.contrib의 일부입니다. 당신은 INSTALLED_APPS 항목에 settings.py에서 볼 수 있습니다 :

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
)

django.contrib 장고 코드 기반의 일부 큰 기능 세트입니다.


정품 인증 관리 도구

우리는 일반적으로 우리는 주석을 제거해야합니다, 당신이 프로젝트를 빌드 할 때 자동으로 urls.py에 설정합니다.

다음과 같이 구성 항목은 다음과 같습니다 :

from django.contrib import admin
admin.autodiscover()

# And include this URLpattern...
urlpatterns = patterns('',
    # ...
    (r'^admin/', include(admin.site.urls)),
    # ...
)

이 모든 구성된 경우, 장고 관리 도구를 실행할 수 있습니다.


관리 도구를 사용하여

개발 서버를 시작하고 브라우저에 액세스 : HTTP를 : // yoursite : 8000 / 관리 / 다음 화면을 구하는 :

다음과 같이, 슈퍼 사용자를 만들 파이썬 manage.py의 createsuperuser을 명령 할 수있다 :

# python manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.
[root@solar HelloWorld]#

다음 사용자 이름과 암호를 입력하면 로그인 인터페이스는 :

데이터 모델을 관리하기위한 관리 인터페이스를 만들려면, 우리는 관리자에 대한 데이터 모델을 등록해야합니다. 예를 들어, 우리는 TestModel 모델 테스트 이전에 생성되었다. TestModel / admin.py 수정 :

from django.contrib import admin
from TestModel.models import Test

# Register your models here.
admin.site.register(Test)

당신은 새로 고침 Testmodel 데이터 시트를 볼 수 있습니다


복잡한 모델

더 복잡한 데이터 모델을 완전히 처리 할 수있는 강력한 관리 페이지.

더 복잡한 데이터 모델 TestModel / models.py에서의 첫 번째 증가 :

from django.db import models

# Create your models here.
class Contact(models.Model):
    name   = models.CharField(max_length=200)
    age    = models.IntegerField(default=0)
    email  = models.EmailField()
    def __unicode__(self):
        return self.name

class Tag(models.Model):
    contact = models.ForeignKey(Contact)
    name    = models.CharField(max_length=50)
    def __unicode__(self):
        return self.name

두 개의 테이블이 있습니다. 외부 키에 연락 태그입니다. 연락 태그의 복수에 대응할 수있다.

우리는 또한 IntegerField로 정수를 저장, 많은 속성이 전에 보지 입력 볼 수 있습니다.

TestModel에서 / admin.py 여러 모델과 쇼를 등록 :

from django.contrib import admin
from TestModel.models import Test,Contact,Tag

# Register your models here.
admin.site.register([Test, Contact, Tag])

새로 고침 관리 페이지는 다음과 같은 결과를 보여줍니다

위의 관리 도구에서 우리는 복잡한 작업을 모델링 할 수 있습니다.


사용자 지정 양식

우리는 대신 기본 페이지의, 관리 페이지를 사용자 정의 할 수 있습니다. 예를 들어, 위의 페이지 "추가". 우리는 단지 이름과 이메일 섹션을 표시합니다. TestModel / admin.py 수정 :

from django.contrib import admin
from TestModel.models import Test,Contact,Tag

# Register your models here.
class ContactAdmin(admin.ModelAdmin):
    fields = ('name', 'email')

admin.site.register(Contact, ContactAdmin)
admin.site.register([Test, Tag])

코드 위 ContactAdmin하는 표시 형식 관리 페이지를 설명하기 위해 클래스를 정의한다.

필드 내부 속성을 표시 할 필드를 정의합니다.

같은 데이터로 모델들이 함께 등록 할 필요가있을 때 우리의 기호를 문의에 대응한다. 다음과 같이 표시합니다

우리는 또한 입력 필드를 차단할 수, 각 필드는 자신의 형식을 정의 할 수 있습니다. 다음과 같이 TestModel / admin.py 수정 :

from django.contrib import admin
from TestModel.models import Test,Contact,Tag

# Register your models here.
class ContactAdmin(admin.ModelAdmin):
    fieldsets = (
        ['Main',{
            'fields':('name','email'),
        }],
        ['Advance',{
            'classes': ('collapse',), # CSS
            'fields': ('age',),
        }]
    )

admin.site.register(Contact, ContactAdmin)
admin.site.register([Test, Tag])

위의 부분은 두 부분으로, 메인 및 고급으로 나누어 져 있습니다. 클래스는 CSS 형식 섹션에서 설명했다. 여기, 사전 부분적으로 숨겨진하자 :

사전 다음 섹션은 확장보기 버튼, 아래 그림과 같이, 숨길 확장 클릭 숨기기가 있습니다 :


인라인 (인라인) 표시

연락 태그는 외부 키 위이므로, 외부 참조 관계가있다.

기본 페이지 디스플레이에서, 두 개의 종속 관계를 반영 할 수없는, 분리 하였다. 우리는 인라인 디스플레이를 사용할 수 있습니다, 그래서 연락 편집 페이지에 부착 된 태그가 표시됩니다.

TestModel / admin.py 수정 :

from django.contrib import admin
from TestModel.models import Test,Contact,Tag

# Register your models here.
class TagInline(admin.TabularInline):
    model = Tag

class ContactAdmin(admin.ModelAdmin):
    inlines = [TagInline]  # Inline
    fieldsets = (
        ['Main',{
            'fields':('name','email'),
        }],
        ['Advance',{
            'classes': ('collapse',),
            'fields': ('age',),
        }]

    )

admin.site.register(Contact, ContactAdmin)
admin.site.register([Test])

다음과 같이 표시합니다


페이지의 목록을 표시합니다

연락처 레코드의 번호를 입력 한 연락처 목록 페이지는 다음과 같습니다 :

우리는 또한 목록에 표시 이상의 열로, 페이지의 표시를 사용자 정의 그냥 ContactAdmin에 속성을 list_display 추가 할 수 있습니다 :

from django.contrib import admin
from TestModel.models import Test,Contact,Tag

# Register your models here.
class ContactAdmin(admin.ModelAdmin):
    list_display = ('name','age', 'email') # list

admin.site.register(Contact, ContactAdmin)
admin.site.register([Test, Tag])

다음과 같이 페이지 표시를 새로 고침 :

매우 많은 수의 레코드를 관리 할 때 검색 기능, 우리는 목록 search_fields 페이지를 높이기 위해 검색 창을 사용하여 :

from django.contrib import admin
from TestModel.models import Test,Contact,Tag

# Register your models here.
class ContactAdmin(admin.ModelAdmin):
    list_display = ('name','age', 'email') 
    search_fields = ('name',)

admin.site.register(Contact, ContactAdmin)
admin.site.register([Test])

이 예에서, 우리는 w3cschool.cc (사이트 도메인 이름)의 이름, 다음과 같은 결과를 보여 검색 :

장고 관리자 관리 도구는 많은 유용한 기능, 관심있는 학생들은 깊이 다음에 공부할 수 있습니다.