본문 바로가기

Python/Python(Django)

Django tutorial part2. (관리자 화면 활성화)

원문 : https://docs.djangoproject.com/en/1.5/intro/tutorial02/



admin 사이트를 활성화 시키자.


1. mysite/settings.py 파일의 INSTALLED_APPS 를 수정한다.

'django.contrib.admin', : 주석해제 한다.

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',
    'polls',
)



2. mysite/urls.py 파일을 아래와 같이 작성한다.

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),
)



3. http://127.0.0.1:8000/admin/ 경로로 접속해보자



최초에 생성한 슈퍼 유저 계정으로 로그인 해보자




4. polls 관련 admin 메뉴를 만들어보자

polls/admin.py 파일을 생성하고 아래와 같이 작성한다.

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

admin.site.register(Poll)



5. 다시 접속해보자

Polls 메뉴가 추가 되었다.


들어가보면 코딩해서 등록한 Poll 오브젝트가 보인다.

Poll 오브젝트에 값을 입력, 수정, 삭제 할 수 있다.(DB table에 작업하는거겠지?)

같은방법으로 Choice를 등록하면 Choice도 CRUD 할 수 있다.



6. polls/models.py를 수정하자

Poll을 추가했는데 보이는건 Poll object라고 보이니 이게 뭔지 도통 알 수 없다.


이럴 경우 

def __unicode__(self): 함수를 재정의해서 개선 할 수 있다.

polls/modes.py 파일을 아래와 같이 수정 한다.

from django.db import models

# Create your models here.
class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    
    def __unicode__(self):
        return self.question
    
class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default = 0)
    
    def __unicode__(self):
        return self.choice_text

함수에서 정의한 question이 표시됨을 확인 할 수 있다.





원문에는 이 admin 화면을 커스터마이징 하는법에 대해 자세히 다루고있다.






반응형