CommandError: Неизвестная команда:
Я создал пользовательскую команду и хочу запускать ее автоматически при старте
Мой командный файл
# project/parser_app/management/commands/create_schedules.py
class Command(loaddata.Command):
    def handle(self, *args, **options):
        # some code
Добавлена команда в wsgi.py
import os
from django.core.wsgi import get_wsgi_application
from django.core.management import call_command
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core_app.settings')
application = get_wsgi_application()
call_command("makemigrations") 
call_command("migrate")
call_command("collectstatic", interactive=False)
call_command("create_schedules parser_app/management/commands/schedule_fixtures.json")
 Я могу выполнить в консоли команду python manage.py "create_schedules parser_app/management/commands/schedule_fixtures.json" и все работает, но когда я добавил команду в wsgi.py (для запуска при старте)
import os
from django.core.wsgi import get_wsgi_application
from django.core.management import call_command
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core_app.settings')
application = get_wsgi_application()
call_command("makemigrations") 
call_command("migrate")
call_command("collectstatic", interactive=False)
call_command("create_schedules parser_app/management/commands/schedule_fixtures.json")
У меня ошибка
raise CommandError("Unknown command: %r" % command_name) django_1 | django.core.management.base.CommandError: Неизвестная команда: 'create_schedules parser_app/management/commands/schedule_fixtures.json'
ОБНОВИТЬ
Я пытался выполнить команду как функцию^ но получил ошибку
ile "/project/core_app/wsgi.py", line 14, in <module>
django_1         |     from parser_app.management.commands.start_command import create_schedules
django_1         |   File "/project/parser_app/management/commands/start_command.py", line 1, in <module>
django_1         |     from parser_app.models import Schedule
django_1         |   File "/project/parser_app/models.py", line 7, in <module>
django_1         |     class TimeBase(models.Model):
django_1         |   File "/usr/local/lib/python3.9/site-packages/django/db/models/base.py", line 127, in __new__
django_1         |     app_config = apps.get_containing_app_config(module)
django_1         |   File "/usr/local/lib/python3.9/site-packages/django/apps/registry.py", line 260, in get_containing_app_config
django_1         |     self.check_apps_ready()
django_1         |   File "/usr/local/lib/python3.9/site-packages/django/apps/registry.py", line 138, in check_apps_ready
Неправильный синтаксис, см. ниже для исправления:
call_command("create_schedules", "parser_app/management/commands/schedule_fixtures.json")
Проще было бы не иметь кода в качестве управляющей команды:
# create_schedules.py
def create_schedules(file_path):
   ...
# wsgi.py
import create_schedules as cs
[...]
cs.create_schedules("parser_app/management/commands/schedule_fixtures.json")
Решено с помощью функции ready() в apps.py
Мое решение
class ParserAppConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'parser_app'
    def ready(self):
        from scripts.create_schedules import create_cron_templates
        create_cron_templates()