【发布时间】:2019-09-05 08:29:53
【问题描述】:
我有一个名为“run_test”的特殊 Django 管理操作。
我想在某些项目上从 Jenkins 作业开始该操作。
这是我的主意
import json
import requests
url = "http://localhost:8000/admin/app/model/"
item = { "user": "jenkins",
"password": "password",
"action": "run_test",
"index": 0
}
headers = {"Content-Type":"application/json","Accept": "application/json"}
resp = requests.post(url,data=json.dumps(item),headers=headers)
print(resp)
403 是我得到的答复。
有没有办法使用 curl 或 request.post 运行 Django 管理命令?
如何包含查询集?
注意:manage.py 命令不是一个选项
【问题讨论】:
-
你的问题一点都不清楚。那个帖子应该做什么?应该触发什么“动作”?您会得到什么确切响应?
-
我的动作叫做“跑”。好的,我知道这可能会产生误导。我有一些测试保存为模型实例。 Jenkins 应该运行 post 命令来触发 django 中的一些测试。我稍微修改了我的问题
-
但是什么是“运行”?它是什么东西?代码在哪里?它与 URL /admin/app/model/ 有什么关系?
-
正如我在第一句话中提到的:“django admin action called “run””。管理员操作通常是“删除所有选定的项目”。您可以通过转到 localhost/app/admin -> 来执行它们,然后单击您的模型。我创建了一个新的,它用选定的项目(索引 = 0)制作了一些东西 例如,我的查询将在索引 = 0 的项目上启动“运行”命令,所以第一个项目。运行命令本身类似于获取该实例并添加一些值或删除一些值。没什么特别的。准确地说:docs.djangoproject.com/fr/2.1/ref/contrib/admin/actions
标签: django django-models python-requests django-admin django-admin-actions