django - 在 Django 中测试自定义管理操作

标签 django testing request action admin

我是 django 的新手,我在测试 app_model_changelist 下拉列表中的自定义操作(例如 actions=['mark_as_read'])时遇到了问题,它与标准“删除选定”的下拉列表相同。自定义操作在管理 View 中工作,但我只是不知道如何在我的模拟请求中调用它,我知道我需要发布数据但是如何说我希望对我发布的数据执行“mark_as_read”操作?

我想反转更改列表 url 并发布查询集,以便“mark_as_read”操作函数将处理我发布的数据。

change_url = urlresolvers.reverse('admin:app_model_changelist')
response = client.post(change_url, <QuerySet>)

最佳答案

只需将操作名称传递给参数action即可。

response = client.post(change_url, {'action': 'mark_as_read', ...})

选中的项目作为 _selected_action 参数传递。所以代码将是这样的:

fixtures = [MyModel.objects.create(read=False),
            MyModel.objects.create(read=True)]
should_be_untouched = MyModel.objects.create(read=False)

#note the unicode() call below
data = {'action': 'mark_as_read',
        '_selected_action': [unicode(f.pk) for f in fixtures]}
response = client.post(change_url, data)

关于django - 在 Django 中测试自定义管理操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29026779/

相关文章:

django - 在 Django 中使用 OSGeo4W 的 GDAL 时 libcurl.dll 出错

python - 具有 null=True 的 OneToOneField 不允许空字段

ruby-on-rails - 有没有办法强制 Rails 中的测试顺序?

java - 如何在 Java 中使用 servlet 过滤器来更改传入的 servlet 请求 url?

Java:仅表示主机、方案、可能来自 servlet 请求的端口的字符串表示

django - 如何打印选择字段的字符串值

python - Django 表单字段 : Styling for Bootstrap without losing functionality?

ruby-on-rails - 运行 rake spec 错误 Selenium::WebDriver::Error::WebDriverError: 无法在 60 秒内获得稳定的 firefox 连接 (127.0.0.1:7055)

ios - 您可以从命令行运行特定的 Xcuitest 吗?

java - 如何使用可分页参数定义请求方向?