def handle(self, *args, **options): now = settings.NOW() start_date = now.date() # The game starts or started on a Tuesday of this week if start_date.weekday() in (SUNDAY, MONDAY, TUESDAY): start_date -= datetime.timedelta((TUESDAY - start_date.weekday()) % 7) else: start_date += datetime.timedelta((start_date.weekday() - TUESDAY) % 7) end_date = start_date + datetime.timedelta(SATURDAY - TUESDAY) if Game.objects.filter(start_date=start_date, end_date=end_date).exists(): self.stderr.write("You don't need to create a game!") return game = Game(start_date=start_date, end_date=end_date) game.full_clean() game.save() self.stderr.write( "Game created from {:%A %d} to {:%A %d}, {:%B %Y}".format( start_date, end_date, start_date, ) )