标签: django-command-extensions

django命令找不到命令模块

当我./manage.py process_email在我的应用程序中,我得到ImportError: No module named commands.process_email.

我的目录布局是:

./
??? __init__.py
??? admin.py
??? forms.py
??? management
?   ??? __init__.py
?   ??? commands
?       ??? __init.py__
?       ??? process_email.py
??? models.py
??? views.py
Run Code Online (Sandbox Code Playgroud)

process_email命令的来源是:

from django.core.management.base import BaseCommand, CommandError
from django.conf import settings
from website.event.models import Event

class Command(BaseCommand):

    def handle(self, *args, **options):
        process_email()

def process_email():
    print "processing email" 
Run Code Online (Sandbox Code Playgroud)

和我得到的错误:

(website.com)kings@bob-kings-MacBook ~/code/website.com/website $  > ./manage.py  process_email
Traceback (most recent call last):
  File "./manage.py", line 14, in <module> …
Run Code Online (Sandbox Code Playgroud)

python django django-command-extensions

14
推荐指数
1
解决办法
5634
查看次数

如何在Django项目的上下文中执行任意脚本?

有时我想在我的Django项目的上下文中执行一个文件,就像我使用shell一样,但是使用文本编辑器也很方便.这主要是为了尝试一些东西,或者在将其放入视图,测试,重复任务或管理命令之前快速构建一些功能原型.

我知道我可以将这些行放在我的.py文件的顶部,它将在Django上下文中运行:

import sys
sys.path.append('/location/of/projet')
from django.core.management import setup_environ
import settings
setup_environ(settings)
Run Code Online (Sandbox Code Playgroud)

我认为制作一个带有参数的管理命令,运行python模块并在Django环境中执行它会更容易.这是我写的'runmodule'命令:

from django.core.management.base import BaseCommand, CommandError

class Command(BaseCommand):
    help = "Runs an arbitrary module, in the Django environment, for quick prototyping of code that's too big for the shell."

    def handle(self, *args, **options):
        if not args:
            return
        module_name = args[0]

        try:
            __import__(module_name)
        except ImportError:
            print("Unable to import module %s.  Check that is within Django's PYTHONPATH" % (module_name))
Run Code Online (Sandbox Code Playgroud)

这看起来很有效 - 我可以在模块中粘贴一些代码,并将其作为参数传递给此命令,并且它将被执行,例如

python manage.py runmodule myapp.trysomethingout
Run Code Online (Sandbox Code Playgroud)

这将执行myapp/trysomethingout.py.这是最好的方法吗?

python django django-testing django-command-extensions

11
推荐指数
1
解决办法
3692
查看次数

重复使用Django代码自动重载功能以用于自定义管理命令

我喜欢django服务器如何在代码更改时自动重新加载自身,因此无需重新启动服务器。

当前,我们使用django自定义管理命令,这可能需要很长时间才能完成。

有什么方法可以对我们的管理命令使用django服务器的自动重载功能?

例如,如果检测到基础django代码库的更改,该命令将重新加载自身并恢复非常长(无状态)循环的执行。

django django-command-extensions

6
推荐指数
2
解决办法
1332
查看次数

将 Django 命令分组到同一应用程序内的文件夹中

是否允许将自定义 Django 命令分组到同一 Django 应用程序内的单独文件夹?

我有很多这样的东西,想按目的对它们进行逻辑分组。创建了文件夹,但 Django 找不到它们。

也许我试图让他们走错路。尝试过:

  • python manage.py process_A_related_data
  • 同样加上导入的所有命令__init__.py
  • python manage.py folderA process_A_related_data
  • python manage.py folderA.process_A_related_data
  • python manage.py folderA/process_A_related_data

出现以下错误:

Unknown command: 'folderA/process_A_related_data'
Type 'manage.py help' for usage.
Run Code Online (Sandbox Code Playgroud)

python django django-command-extensions django-commands

6
推荐指数
2
解决办法
2098
查看次数

如何将Django Command Extensions与新的Eclipse/Pydev运行配置一起使用

当我在Eclipse中创建新的运行配置时,它会创建一个如下运行命令:python.exe -u manage.py runscript my_script.py,无论我是尝试制作Python运行配置,还是运行Django运行配置.

我如何让它运行python.exe manage.py runscript my_script.py呢?(没有-u开关).

我假设-u是它破坏的原因,因为python.exe manage.py runscript my_script.py从一个普通的旧bash提示中运行正常.

python eclipse django django-command-extensions

5
推荐指数
1
解决办法
383
查看次数

5
推荐指数
1
解决办法
1153
查看次数