2016-06-23 6 views
0

저는 장고 1.9와 장고 Rest Framework를 사용하고 있습니다.Django에서는 템플릿 외부에서 템플릿 태그를 가져오고 사용하는 것이 좋지 않습니까?

장고에는 timesince()이라는 메서드가 있으며 humanize이라는 templatetag에서 'naturaltime'이라는 메서드로 사용됩니다.

자연 시간 메서드는 내가 원하는 것을 반환합니다 (예쁜 형식의 날짜). Timesince는 앱에서 사용할 수있는 것이 아닙니다.

어쨌든, 난 DRF에 대한 serializer.py 파일에있어, 나는 함께 그 방법을 수입 :

from django.contrib.humanize.templatetags.humanize import naturaltime 

방법 및 의 상단에 register.filter @ 주석 거기 때문에 register = template.Library()을 templatetag 파일 맨 위에 놓으면 템플릿에서 가져올 때 문제가 발생할 수 있습니까?

답변

0

아니요. 문제가 발생하지 않아야합니다.

이 함수는 일반 파이썬 함수로 사용할 수 있습니다. @register.filter의 기능을 filter으로 장식하고 register = template.Library()을 템플릿 태그로 사용하는 데코레이터입니다.

그러나 일반 Python 코드에서 올바른 서명을 사용하여 호출 할 수도 있습니다.

그래서 당신은 할 수 있습니다 :

from django.contrib.humanize.templatetags.humanize import naturaltime 
from datetime import datetime as dt 

my_human_time = naturaltime(dt.now()) 
print(my_human_time) 
# 'now' 
관련 문제