Как правильно добавить пользовательский аргумент '--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?