Saya menggunakan Django 1.9 dan Django Rest Framework.
Di Django, ada metode bernama timesince() dan itu digunakan dalam tag template yang disebut memanusiakan, dalam metode yang disebut 'naturaltime'.
Metode waktu alami mengembalikan apa yang saya inginkan (tanggal yang cukup diformat). Timesince tidak begitu berguna dalam sebuah aplikasi.
Bagaimanapun, saya menggunakan file serializer.py untuk DRF, dan saya mengimpor metode itu dengan:
from django.contrib.humanize.templatetags.humanize import naturaltime
Karena ada anotasi @register.filter di bagian atas metode dan register = template.Library() di bagian atas file templatetag, dapatkah ini menyebabkan masalah saat saya impor itu bukan dari template?
1 menjawab
Tidak, itu seharusnya tidak menimbulkan masalah.
Anda dapat menggunakan fungsi sebagai fungsi python biasa. @register.filter
adalah dekorator yang menghias fungsi sebagai filter
sementara register = template.Library()
membuatnya dapat digunakan sebagai tag template.
Namun, itu juga dapat dipanggil menggunakan tanda tangan yang tepat dalam kode python biasa.
Jadi Anda dapat melakukan:
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'