Подтвердить что ты не робот

Пользовательская команда django не найдена

У вас возникли проблемы с получением рабочих команд django.

Из django documetation, разместили

application/
    manage.py
    blog/
        __init__.py
        models.py
        management/
            __init__.py
            commands/
                __init__.py
                myapp_task.py
        views.py

Содержимое myapp_task.py

from django.core.management.base import NoArgsCommand

class Command(NoArgsCommand):
    def handle_noargs(self, **options):
        print 'Doing task...'
        # invoke the functions you need to run on your project here
        print 'Done'

при запуске

python manage.py myapp_task

получение ошибки

Unknown command: 'myapp_task'
4b9b3361

Ответ 1

Структура каталогов в вашем ответе немного неоднозначна; при размещении файлов следующим образом django должен иметь возможность найти вашу команду:

project/ # in your question this would be 'application'
    manage.py
    blog/
        __init__.py
        models.py
        management/
            __init__.py
            commands/
                __init__.py
                myapp_task.py
        views.py

Кроме того, вам нужно включить свое приложение в свой settings.py:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.admin',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'blog', # <= your app here ...
)

Ответ 2

У меня была та же проблема. Причина заключалась в том, что корень проекта не был в моей $PYTHONPATH. Решение в этом случае состоит в том, чтобы набрать (на машине Linux) что-то вроде

PYTHONPATH=./project python manage.py myapp_task

Ответ 3

Я думаю, что команды/должны находиться внутри каталога management/.

Ответ 4

Если проект скомпилирован, django.core.management.find_commands() будет искать только файлы .py. Если ваши пользовательские команды находятся в .pyc файлах, вам нужно исправить django/core/management/commands/__ init__.py с патчем https://code.djangoproject.com/ticket/19085

Ответ 5

Это связано с тем, что init.pyc не создается автоматически в папке "management" и "commands". Скопируйте your_app/__init__.py и your_app/__init__.pyc и вставьте его в папку управления//команды/.