def _extract_date(self):
"""
Extract date from request.
In detail route extract it from pk and it list
from query params.
"""
pk = self.request.parser_context['kwargs'].get('pk')
# detail case
if pk is not None:
try:
return datetime.datetime.strptime(
pk.split('_')[2], '%Y-%m-%d'
)
except (ValueError, TypeError, IndexError):
raise exceptions.NotFound()
# list case
try:
return datetime.datetime.strptime(
self.request.query_params.get('date'),
'%Y-%m-%d'
).date()
except ValueError:
raise exceptions.ParseError(_('Date is invalid'))
except TypeError:
raise exceptions.ParseError(_('Date filter needs to be set'))
评论列表
文章目录