问题标签 [django-management-command]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
96 浏览

python - 在 Django 管理命令的开头和结尾记录一些内容

现在我的 Django 项目中有多个管理命令。

我想以一种我不会在每个命令中重复自己的方式在命令的开头和结尾记录类似[command_name] command startedand的内容。[command_name] command finished

已经在该方法之上尝试了装饰器,handle()但认为这不是一个好的解决方案,因为我必须handle()在所有命令中装饰该方法。

PS:我正在使用 python 记录器。

编辑

到了这一步:

输出:

0 投票
1 回答
102 浏览

django - 在 django 信号中,如何将发送者的类变量(模型字段)传递给接收者(management.call_command 函数)并使用它

我正在使用第三方包(django-tenants)构建一个多租户项目,这使我可以从它自己的类中派生租户和域模型:

长话短说,我想创建一个 API 视图来注册租户,但我无法理解包代码并且在尝试创建 TenantManager 时失败;但我确实弄清楚了如何使用 django.core.management.call_commands 从代码内部调用 django-tenants (python manage.py create_tenant/create_tenant_superuser) 提供的 CLI 管理命令:

所以我想出了临时简化的解决方案——另一个模型(Founder)是用常规的models.Model和它自己的genericAPIview制作的,我知道如何创建。发布此模型后,我想将信号执行到我的自定义 management.call_command。

据我了解,django 信号分为三个部分:

  • 发件人 - 这应该是我的 Founder 模型中的“notify_about_sender_creation”方法
  • 接收器 - 这应该是一个可调用对象,在我的情况下,它是这个自定义 management.call_command
  • 信号 - 我不知道这应该是 post_save 还是自定义信号?我只能将变量提供给自定义变量吗?

基于这种理解,我得到:

但在我的控制台中,我得到:

0 投票
1 回答
198 浏览

django - 是否可以通过 management.call_command 创建一个 django_tenant_superuser?

我正在用 django-tenant 构建一个多租户项目。

我遇到的问题是“密码”不是有效的标志选项。

给出错误:

0 投票
0 回答
42 浏览

django - Django/Nosetest:django.core.exceptions.SuspiciousFileOperation

我想为读取文件并执行某些操作的管理命令编写测试。一切都按预期工作。为了干净地组织我的测试文件(在这种情况下,我检查读取的 CSV 文件是否具有某些验证),我想将测试 CSV 文件放在my_project/my_app/tests/files/test_me.csv. 而且,当我运行测试时,Django 正在抛出这个错误django.core.exceptions.SuspiciousFileOperation: The joined path (/code/my_project/my_app/test/files/test_me.csv) is located outside of the base path component (/code/media)

这是我的测试代码,

但是,如果我将此文件放在下面/code/media,则不会发生此错误。但我不想将它存储在/code/media.

如何解决这个问题呢?注意:我来自 Rails 背景。

0 投票
0 回答
25 浏览

django - 如何创建管理命令以通过电子邮件发送密码重置?

使用 django-oauth-toolkit,我必须创建一个管理命令,将密码重置电子邮件发送到电子邮件地址。此电子邮件将有一个 html 模板并允许用户更改其密码。

我可以看到视图有这个逻辑,而是提供了一个模板来输入电子邮件地址。我需要模仿这种观点,并创建一个命令来做到这一点。

password_reset url 返回此视图和表单。

我不需要表格位,我需要发送电子邮件。

下面的方法似乎也很重要。但是管理命令在视图的上下文之外,它处理 http 方法和请求对象。

如何在PasswordResetView没有表格和管理命令的情况下做同样的事情?

非常欢迎任何建议!

0 投票
0 回答
21 浏览

django - 在 Django 管理命令中设置 csv 文件的默认路径

我有一个管理命令,如果没有明确给出文件路径,我想读取每个文件并执行该命令。如何将管理命令指向正确的目录并让它打开每个文件?

0 投票
1 回答
34 浏览

django - crontab 似乎启动脚本,但没有任何反应

我在我的 docker 容器中定义了很多 cronjobs,我在去度假时让它们运行。当我回来时,一切都停止了。似乎容器在我休假期间的某个时间点重新启动,并且我没有很好地配置我的 docker,使其无法自行重新启动 crontab 服务。

但是,现在我已经重新启动它,我的 cronjobs 不起作用。我检查了服务是否正在运行,我可以确保 crontab 正在完成它的部分工作,因为它的条目已成功记录在 syslog 中。但是我的脚本没有被执行。我从写入日志文件开始(我的任务是使用 Django 命令和 python 日志库),但日志文件没有更新。

从命令行手动运行命令仍然有效,我的命令指定了所有内容的绝对路径(甚至是要使用的 python 二进制文件......)。我不知道在哪里看才能了解此时出了什么问题。

注意:自从假期回来后,我确实更新了一些代码,但没有一个会影响脚本中的起始日志消息。

作为测试,我创建了一个脚本 bash,其中包含一行 : echo "foo" > /path/to/some_non_exiting_file.txtcrontab -e我使用并添加了行编辑 cron * * * * * myscript.sh。事实证明,下一分钟,我的文件被创建了,但它是空的。

0 投票
0 回答
42 浏览

python - 如何将数据发送到正在运行的 django 管理命令?

我有一个自定义的 django 管理命令,它不断通过主管运行(保持活动状态)

我需要在某些情况下(例如,项目中的信号,或数据库中的更改)django 管理进程对这些更改做出反应。

尝试寻找类似的东西,但似乎找不到简单的实现。

UPD:在管理命令中,我启动到 twitter API 的流处理,以跟踪来自 django 数据库的标签的新推文。向数据库添加新标签时,我想重新启动流连接。