How to write custom django manage.py commands in multiple apps

14,573

Solution 1

As @Babu said in the comments, It looks like you may not have added your app to INSTALLED_APPS in your settings.py.

It's also possible that you're missing the __init__.py files (that are required in python modules) from the management and commands folders.

Alternatively, (sorry to say this) you may have misspelt "management" or "commands", or even the name of the command you're running.

Solution 2

Most likely, you did not include app B in your settings.py

If you just run python manage.py with no command specified, it will print the list of commands Django can find.

This can help rule out misspelling the command name, but doesn't answer the question of whether or not you made management and commands both packages, or if app B simply isn't listed in your settings.INSTALLED_APPS

Solution 3

It looks like you have not registered your app B in INSTALLED_APPS in our settings.py. You also need to add a __init__.py file in both folders(management and commands) to make it as a package. Make Sure you spell folder names correctly.

Share:
14,573
user1335608
Author by

user1335608

Updated on June 05, 2022

Comments

  • user1335608
    user1335608 almost 2 years

    Imagine I have two or more apps in my django project, I was able to successfully write and execute custom manage.py commands when I had only one app, A.

    Now I have a new app, B, and as mentioned in https://docs.djangoproject.com/en/dev/howto/custom-management-commands/ I created directory structure of B/manangement/commands and wrote a custom module.

    When I run python manage.py , it keeps complaining Unknown command. However if I move this command to other app, i.e. to folder A/management/commands and then run python manage.py <command>, it works seamlessly.

    Any idea how I can resolve this?