我正在使用django-rest-framework来创建一个返回PDF的端点.但是,当呈现PDF时出错,我想返回JSON响应.但DRF将异常数据传递给我的PDFRenderer类.只有在出现错误时,我才能使用JSONRenderer?
class PDFRenderer(BaseRenderer):
""" DRF renderer for PDF binary content. """
media_type = 'application/pdf'
format = 'pdf'
charset = None
render_style = 'binary'
def render(self, data, media_type=None, renderer_context=None):
return bytes(data)
Run Code Online (Sandbox Code Playgroud)
例如,当我的视图显示时raise PermissionDenied(),由于授权用户无权查看请求的PDF,因此DRF将{'detail': 'You do not have permission to perform this action.'}作为data参数传递给PDFRenderer.render.
编辑:我尝试了一个自定义异常处理程序,但显然你仍然必须通过DRF的异常处理程序运行它,它将它传递给PDFRenderer.
我使用appscript编写了一个python脚本来跟踪我当前活动的窗口.我通过launchd运行它,但是当我这样做时它无法导入appscript.我已将plY中的PYTHONPATH设置为launchd,但我认为launchd不是在site-packages中读取.pth文件.有没有办法让它做到这一点?
我的脚本在这里:https://github.com/katylava/macwintracker
这是推出的plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>label</key>
<string>com.katylavallee.wintracker</string>
<key>ProgramArguments</key>
<array>
<string>/Users/kyl/Library/Application Support/com.katylavallee.wintracker/wintracker.py</string>
<string>1</string>
<string>1</string>
</array>
<key>Environment Variables</key>
<dict>
<key>PYTHONPATH</key>
<string>/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages</string>
</dict>
<key>StandardErrorPath</key>
<string>/Users/kyl/Library/Logs/com.katylavallee.wintracker/wintracker_err.log</string>
<key>StandardOutPath</key>
<string>/Users/kyl/Library/Logs/com.katylavallee.wintracker/wintracker.log</string>
<key>StartInterval</key>
<integer>3</integer>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
而错误:
Traceback (most recent call last):
File "/Users/kyl/Library/Application Support/com.katylavallee.wintracker/wintracker.py", line 5, in <module>
from appscript import app, its
ImportError: No module named appscript
Run Code Online (Sandbox Code Playgroud)
python脚本从命令行运行良好.
我在mongodb数据库中的得分集(学生)数据库中有2个文档.
{
id: 2,
type: 'newname',
subs: [
{ time: 20, val: 'b' },
{ time: 12, val: 'a' },
{ time: 30, val: 'c' }
] }, {
id: 1,
type: 'strs',
subs: [
{ time: 50, val: 'be' },
{ time: 1, val: 'ab' },
{ time: 20, val: 'cs' }
] }
Run Code Online (Sandbox Code Playgroud)
如何构造查询以获得以下结果
{
id: 1,
type: 'strs',
subs: [
{ time: 1, val: 'ab' },
{ time: 20, val: 'cs' },
{ time: 50, val: 'be' …Run Code Online (Sandbox Code Playgroud)