Как правильно добавить пользовательский аргумент '--dry-run' в команду `runjob` расширений Django?

У меня есть пользовательское задание управления Django, созданное с помощью django_extensions, которое удаляет старые записи базы данных. Чтобы избежать непреднамеренных удалений, я хочу добавить аргумент --dry-run для имитации удалений без фактического удаления данных. Однако, когда я выполняю команду с помощью:

uv run python manage.py runjob delete_recordings --dry-run

Я получаю эту ошибку:

manage.py runjob: error: unrecognized arguments: --dry-run

Вот как выглядит мой упрощенный класс заданий на данный момент:

from django_extensions.management.jobs import HourlyJob
import logging

logger = logging.getLogger(__name__)

class Job(HourlyJob):

    @classmethod
    def add_arguments(cls, parser):
        parser.add_argument(
            '--dry-run',
            action='store_true',
            help='Execute the job in simulation mode without deleting any data.',
            default=False,
        )

    def execute(self, *args, **options):
        dry_run = options.get('dry-run', False)
        if dry_run:
            logger.info("Executing in DRY-RUN mode.")
        # Logic here to delete records or simulate deletion based on dry_run

Я следовал документации по расширениям Django, чтобы добавить пользовательский аргумент (--dry-run). Я ожидал, что при выполнении команды с --dry-run она распознает аргумент и имитирует операцию, регистрируя предполагаемые удаления без их выполнения.

Однако командная строка возвращает ошибку, указывающую на то, что аргумент не распознан. Похоже, что Django Extensions не принимает пользовательский аргумент, определенный в моем классе job.

Каков правильный способ добавить пользовательский аргумент (--dry-run) в команду Django Extensions runjob?

Вернуться на верх