์ฌ๊ธฐ์ ์ค๋ช ๋ ํํฐ๋ง์ ๊ตฌํํ๋ ค๊ณ ํ์ต๋๋ค. http://django-filter.readthedocs.io/en/develop/ref/filters.html#isodatetimefilter
๊ทธ ๋ฐฉ๋ฒ์ด ์๋ํ๋ ๋์ '์ ํํ' ์ผ์น ์ด์์ ์ํ๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟจ์ต๋๋ค.
fields = ['published']
์ ํจ๊ป:
fields = {'published': ['exact', 'gte', 'lte']}
์ด๊ฒ์ ์ฌ์ ํ โโIsoDateTime์ ์ฌ์ฉํ '์ ํํ' ํํฐ๋ง์ ๋ํด ์๋ํ์ง๋ง 'gte' ๋ฐ 'lte'์ ๊ฒฝ์ฐ IsoDateTime์ ์ฌ์ฉํ ๋ ์คํจํฉ๋๋ค. DateTime์ ์ฌ์ฉํ ๋ ์๋ํฉ๋๋ค.
ํ์ฌ ๊ฐ ์กฐํ๋ฅผ ๋ณ๋๋ก ์ง์ ํ์ฌ IsoDateTime๊ณผ ํจ๊ป ์๋ํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
published = django_filters.IsoDateTimeFilter(
name='published', lookup_expr='exact')
published_gte = django_filters.IsoDateTimeFilter(
name='published', lookup_expr='gte')
published_lte = django_filters.IsoDateTimeFilter(
name='published', lookup_expr='lte')
ํ . ๋ด ์ฒซ ๋ฒ์งธ ์๋ต์ ์ด๊ฒ์ ์ฌ์ fields
๊ตฌ๋ฌธ์ ์ ํ์ผ๋ก ๋ฐ์๋ค์ด๋ ๊ฒ์
๋๋ค. ํ๋๋ฅผ ๋ช
์์ ์ผ๋ก ์ ์ธํ๋ ๊ฒ("ํด๊ฒฐ ๋ฐฉ๋ฒ")์ ์ด๋ฅผ ์ํํ๋ ํ์ค ๋ฐฉ๋ฒ์
๋๋ค. ์ฌ์ ๊ตฌ๋ฌธ์ ๋ฐ๋ก ๊ฐ๊ธฐ์ ๋ถ๊ณผํ๋ฉฐ ์ ํ์ด ์๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๊ทธ๋ ๊ธด ํ์ง๋ง, ๋๋ ์ด๊ฒ์ "์์ "ํ๊ธฐ ์ํด ์์ ๋ฐ์๊ตญ์ผ๋ก ๋ณ๊ฒฝ์ ํ ๊ฒ์ ๋๋ค...
Meta.filter_overrides
๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ ํ๋์ ์ฌ์ฉ๋๋ ํํฐ ํด๋์ค๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
class BookFilter(django_filters.FilterSet):
class Meta:
model = Book
fields = {'published': ['exact', 'lte', 'gte']}
filter_overrides = {
models.DateTimeField: {'filter_class': django_filters.IsoDateTimeFilter},
}
@carltongibson ์ ํ์ ์๋ฝํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ๋น ๋ฅธ "์์ "์ ์ฐพ์ผ๋ ค๊ณ ํ์ง๋ง ํ์ฌ ์ฝ๋์ ๋ด๋ถ ์๋์ ๋ํ ์ดํด๊ฐ ๋๋ฌด ์ ํ์ ์ ๋๋ค./
@rpkilby ๊ฐ์ฌํฉ๋๋ค, ๊ทํ์ ์ ์์ ์ ์๋ํฉ๋๋ค. ์์ผ๋ก ์ฌ์ฉํ๊ฒ ์ต๋๋ค. :)
@carltongibson ๋ฌธ์์์ ์ด ์ ํ ์ฌํญ์ ์ธ๊ธํ์๊ฒ ์ต๋๊น? ์ ์ ํ๋ค๊ณ ์๊ฐํ์๋ฉด ํ ๋ฆฌํ์คํธ๋ฅผ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Meta.filter_overrides
๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ ํ๋์ ์ฌ์ฉ๋๋ ํํฐ ํด๋์ค๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.