none получается тк слаг устанавливается до сохранения записи и self.id работает не ожидаемо, еще нет записи в базе и нет собственно ид. Воспользуйтесь сигналами
Periodic Tasks, отлично подойдут для такого. expired_at тоже решение, но опять же нужно будет раз в N времени запускать задачу на удаление подобных записей, если конечно нет задачи их хранить.