问题标签 [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 回答
3877 浏览

django - 测试django自定义管理命令

我正在努力解决与 django 自定义管理命令相关的问题。这是从 json 文件加载数据的自定义管理命令代码:

当我运行它时:

一切正常,并且表格中有数据。

下一步是创建测试。我试过这个:

bu当我运行它时:

我收到此错误:

0 投票
3 回答
1511 浏览

python - 在 Django 管理命令中添加了虚假的换行符

在 Python 3.5.0 上运行 Django v1.10:

预期输出:

实际输出:

如何正确传递结束字符?我目前使用明确设置的解决方法:

但是这个 hack 意味着你没有得到 print 函数的所有特性,你必须self.stdout.write手动使用和准备字节。

0 投票
1 回答
434 浏览

html - 来自 Django 管理命令的可下载文件

我已经研究了几天,我仍然无法解决这个问题!希望 StackOverflower 的同事可以在这里帮助我。

所以,现在我有一个自定义的 django 管理命令,它运行一个报告并发送和电子邮件,其中包含作为 xlsx 文件(excel)的报告。现在我想知道是否有一种方法可以在网站上获取该 Excel 报告,以便人们在不想收到电子邮件时可以下载并自行查看。

我已经设置了我的 url 和 html 模板,我现在需要的只是将我的报告的链接(由我的管理命令生成)放入我网站上的模板中,以便任何人都可以下载它!!!请帮忙!我卡住了!

管理命令(精简)

因此,我想提供名为 EDIComplianceReport.xslx 的文件,并允许其他人将其作为 html 模板上的链接下载。

现在它只是在我的本地主机上运行!!! 我有一个想法,将 excel 工作簿保存到一个静态文件夹并从那里抓取它,但我只是想不出将文档嵌入我的模板中的确切代码......

0 投票
0 回答
205 浏览

python - Django - 使用管理和共享数据

我正在使用 Django (1.9),我想在管理命令之间共享类对象。

假设 - 简单地说 - 我有一个主应用程序,它实例化了一些类。

我想要的是在另一个命令行调用中访问“myObject”对象。例如,我想知道 myObject 对象何时被实例化。

在示例中,我使用单例模式,因为它似乎接近我想要的。

到目前为止,我只找到了以下解决方案:

1)主应用程序创建一个监听命令行调用的服务器

2)另一个应用程序是该服务器的客户端:

这可以工作,但我有一个手动序列化(在客户端)和反序列化(在服务器端)每个命令。我觉得它很难看,我想知道是否有使用 Django 的最佳方法。

我还可以使用数据库来存储我想要共享的每个对象,但它似乎并不好。

下面的真实用例

例如,我有一个名为“配置”的应用程序,它能够在文件系统上加载属性文件。(注意:我调用这里介绍的属性文件:docs.python.org/2/library/configparser.html)。当用户运行命令“load-config”时,此应用程序会加载属性文件。然后,我希望我的所有应用程序都可以访问之前加载的配置,而无需重新读取每个属性文件。我想为我的所有应用程序实例化一个“PropertyManager”对象。到目前为止,我将读取的属性存储在数据库中,以便每个应用程序都可以从那里获取它

有什么意见或想法吗?

0 投票
0 回答
602 浏览

python - 在 Django 中测试抽象模型

我正在尝试在我的 Django 应用程序中测试抽象基础模型的一些功能。我一直在阅读如何进行这些测试,每个人似乎都说我需要创建一个测试模型。

所以我已经这样做了,我创建了一个名为的目录my_app/tests并在其中创建了一个models.py。我的测试模型在哪里UniqueSlugTestModel

现在我想我需要在测试应用程序上调用makemigrations和。migrate所以我将我的新测试应用程序添加到测试中的设置并调用迁移。但由于某种原因,makemigrationsmigrate没有看到该my_app.tests应用程序不在设置中。为什么他们查看的设置与我在测试中覆盖的实时设置不同?

这是在 Django 中测试抽象模型的最佳方法吗?如何让管理命令查看被覆盖的设置?

print(settings.INSTALLED_APPS)打印出我所有已安装的应用程序,包括我my_app.tests在其中添加的应用程序。

但它失败了App 'my_app.tests' could not be found. Is it in INSTALLED_APPS?

0 投票
1 回答
3730 浏览

python - 向自定义 Django management/manage.py 命令添加确认步骤

我按照本教程创建了以下自定义管理命令。

它完全按照我的意愿工作,但我想添加一个确认步骤,以便在for user in users:循环之前询问您是否真的要向 N 个用户发送消息 X,如果您选择“否”,该命令将中止。

我认为这很容易做到,因为它发生在一些内置的管理命令中,但它似乎没有在教程中涵盖这一点,即使在搜索和查看了内置管理命令的源代码之后,我自己无法弄清楚。

0 投票
1 回答
151 浏览

python - Django 任务/命令执行最佳实践/理解

我在理解 django 管理命令方面遇到了一点问题。我有一个 Web 应用程序,它通过 eth0 显示一些网络流量信息。因此,我创建了一个 python 类来分析流量并创建/更新数据库中的特定数据。像这样的东西:

然后我创建一个管理命令来创建这个类实例并运行startAnalyzing().

现在我的问题:

这是通过管理命令执行此操作的正确方法吗,因为任务没有终止(一直运行)并且没有通过 web 应用程序启动/停止?或者正确的方法是什么?

不通过 django 启动“分析器”可能更好吗?我是 django 的新手,不想以正确的方式去做。

我运行时是否可以开始嗅探流量:manage.py runserver 0.0.0.0:8080?

提前谢谢了。

0 投票
1 回答
401 浏览

python - 从 Django 管理命令导入我的包

我编写了一个最初是命令行工具的包,但我决定对于 Django,它应该从管理命令运行。我已经codequal使用 安装了我的外部包(称为 )pip install --editable,并且可以成功地用于manage.py shell从该包中导入模块:

这工作正常。但是,当我尝试在管理命令中做同样的事情时,我遇到了一个错误:

为什么是这样?我可以使用管理命令中的其他已安装软件包。这可能与我的 setup.py 有关吗?如果需要,我可以发布其中的片段。主要是我想知道这部分是否应该归咎于:

这是否会阻止从某些地方导入模块?我看不出它会如何,因为我可以从manage.py shell.

0 投票
1 回答
373 浏览

python - 管理中的 Django 初始化数据库无法使用持续时间字段运行:错误-“int”对象没有属性“total_seconds”

当我尝试在 Django 的管理中将 load_data 加载到数据库时,diango 中的持续时间字段存在问题。

在models.py中:

管理中的 load_data.py:

在命令之后:python3 manage.py load_data --add-sports 我得到了这个错误:

文件“/home/hubert/workspace/wirtualne_srodowoska/env1/lib/python3.5/site-packages/django/db/models/fields/init .py ”,第 1640 行,在 get_db_prep_value return int(round(value.total_seconds( ) * 1000000)) AttributeError: 'int' 对象没有属性 'total_seconds'

谁能帮我这个?如何修改它?当我将 duration=3000000000 更改为 duration=3000.0 时,我得到: AttributeError: 'float' object has no attribute 'total_seconds'

没有持续时间字段的所有其他模型都可以正常工作:/

0 投票
1 回答
5155 浏览

python - 具有自定义管理命令值的多个参数

如何将多个带有值的参数从命令行传递到自定义 django 管理命令?

当我运行时:

我得到以下值options

尝试在文档和在线搜索解决方案和多种传递参数的方法,但没有成功。Django 版本是 1.10。

谢谢