template tags and filters 만들때 어디에 만들어야 여러 곳에서 사용할수 있을까요

2023. 6. 19. 10:53django/Views

Django의 커스텀 템플릿 태그 및 필터는 Django 프로젝트의 임의의 앱에서 만들어질 수 있습니다. 이러한 태그와 필터를 여러 곳에서 사용하려면 템플릿 태그 및 필터를 포함하는 앱을 Django 프로젝트에서 재사용 가능한 앱으로 생성하는 것이 좋습니다.

다음은 커스텀 템플릿 태그 및 필터를 재사용 가능한 앱으로 생성하는 과정입니다:

1. Django 프로젝트의 루트 디렉토리에서 다음과 같은 명령을 실행하여 새로운 앱을 생성합니다:

python manage.py startapp custom_utils

2. 생성한 앱의 디렉토리 구조는 다음과 유사하게 될 것입니다:

```
custom_utils/
    ├── __init__.py
    ├── templatetags/
    │   ├── __init__.py
    │   └── custom_filters.py
    ├── ...
    └── models.py
```

3. `custom_filters.py` 파일을 열고, 아래와 같이 커스텀 필터를 작성합니다:

```
from django import template

register = template.Library()

@register.filter
def phonenumber(value):
    if len(value) == 11:
        return f"{value[:3]}-{value[3:7]}-{value[7:]}"
    else:
        return value
```

4. 재사용 가능한 앱으로 등록하기 위해 `custom_utils` 디렉토리에 있는 `apps.py` 파일을 열고, 다음과 같이 `CustomUtilsConfig` 클래스를 수정합니다:

```
from django.apps import AppConfig

class CustomUtilsConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'custom_utils'
```

5. Django 프로젝트의 `settings.py` 파일에서 `INSTALLED_APPS` 설정을 업데이트하여 새로운 앱을 추가합니다:

```
INSTALLED_APPS = [
    ...
    'custom_utils.apps.CustomUtilsConfig',
    ...
]
```

6. 이제 커스텀 필터를 사용하기 위해 Django 템플릿에서 다음과 같은 코드를 작성하여 필터를 로드합니다:

```
{% load custom_filters %}
```

7. 필터를 사용하여 전화번호를 원하는 형식으로 변경할 수 있습니다:

```
{{ pinhisttm_form.customer_tel|phonenumber }}
```

위의 방법을 따라 커스텀 템플릿 태그와 필터를 재사용 가능한 앱으로 만들어보세요. 그러면 여러 곳에서 해당 태그와 필터를 사용할 수 있습니다.

'django > Views' 카테고리의 다른 글

dict  (0) 2023.07.16
django QuerySet에 field 추가하는 방법  (0) 2023.06.20
request.GET 에 대한 예제  (0) 2023.06.13
django request 문법  (0) 2023.06.13
from django.db.models import Q 오류발생  (0) 2023.06.09