Парсите какой-нибудь ресурс с производственным календарем, и пишете метод по проверке, что-то вроде такого:
YEAR_HOLIDAYS = 'HOLIDAYS:{year}'
...
@classmethod
def is_work_day(cls, date):
if date.weekday() in [5,6]:
return False
holidays = cache.get(YEAR_HOLIDAYS.format(year=date.year))
if not holidays:
holidays = cls.objects.filter(year=date.year).values_list('date', flat=True)
cache.set(YEAR_HOLIDAYS.format(year=date.year), holidays)
if date in holidays:
return False
return True
Сюда добавить логику переноса рабочих дней - и в продакшен..