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('_')[1], '%Y-%m-%d'
)
except (ValueError, TypeError, IndexError):
raise exceptions.NotFound()
# list case
query_params = self.request.query_params
try:
return datetime.datetime.strptime(
query_params.get('date'), '%Y-%m-%d'
).date()
except ValueError:
raise exceptions.ParseError(_('Date is invalid'))
except TypeError:
if query_params.get('last_reported_date', '0') == '0':
raise exceptions.ParseError(_('Date filter needs to be set'))
return None
评论列表
文章目录