갈루아의 반서재

















프로젝트 설정 중 장고 설정에 대해 살펴봅니다.


1. INSTALLED_APPS 업데이트 (setting.py 파일 수정)


1) 아래에서 보는 바와 같이 () → []  리스트 형태로 고친 후

(수정하지 않으면 TypeError: can only concatenate tuple (not "list") to tuple가 발생한다)

2) Django-machina related apps 을 추가한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from machina import get_apps as get_machina_apps
 
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    
    #Django-machina related apps
    'mptt',
    'haystack',
    'django_markdown',
    'widget_tweaks',
] + get_machina_apps()
cs


django-markdown : 포럼 메시지용

django-mptt : 포럼 인스턴스의 트리 구조를 위한 것

django-haystack : 검색 관련


2. TEMPLATE_CONTEXT_PROCESSORS 설정을 다음과 같이 수정


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
TEMPLATES = [
    {
        'BACKEND''django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                  # Machina
                'machina.core.context_processors.metadata',
            ],
        },
    },
]
cs



3. MIDDLEWARE_CLASSES 설정 수정 machina.apps.forum_permission.middleware.ForumPermissionMiddleware 추가


1
2
3
4
5
6
7
8
9
10
11
MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'machina.apps.forum_permission.middleware.ForumPermissionMiddleware',
)
cs



4. TEMPLATE_DIRS 설정 수정

django-machina‘s 템플릿 디렉토리가 포함되도록 수정


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from machina import MACHINA_MAIN_TEMPLATE_DIR
 
TEMPLATES = [
    {
        'BACKEND''django.template.backends.django.DjangoTemplates',
        'DIRS': [MACHINA_MAIN_TEMPLATE_DIR,],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                  # Machina
                'machina.core.context_processors.metadata',
            ],
        },
    },
]
cs


5. STATICFILES_DIRS 설정 수정

django-machina‘s static directory 포함되게 수정

1
2
3
4
5
6
from machina import MACHINA_MAIN_STATIC_DIR
 
STATICFILES_DIRS = (
  # ...
  MACHINA_MAIN_STATIC_DIR,
)
cs



6. 마지막으로 CACHE 추가


추가된 캐시는 임시 포스팅 첨부 파일을 다루기 위한 것으로, machina_attachments 캐시는 django.core.cache.backends.filebased.FileBasedCache

backend를 사용해야 한다.



1
2
3
4
5
6
7
8
9
10
 
CACHES = {
  'default': {
    'BACKEND''django.core.cache.backends.locmem.LocMemCache',
  },
  'machina_attachments': {
    'BACKEND''django.core.cache.backends.filebased.FileBasedCache',
    'LOCATION''/tmp',
  }
}
cs