我是 Pentaho 的新手,我正在尝试执行以下工作流程:
我已经使用输入步骤和 Json 输出步骤找出了前两个。
但是,我在做最后一步时遇到了两个问题:
1) 我无法按照我想要的方式格式化 JSON。它坚持在{""=[{...}]}我想要的时候做{...}。这没什么大不了的 - 我可以解决这个问题,因为我可以控制 Web 服务,并且可以稍微放宽输入要求。(注意:这个页面http://wiki.pentaho.com/display/EAI/JSON+output通过设置no. rows in a block=1和一个空的 JSON 块名称给出了我想要的输出示例,但它不像宣传的那样工作。)
2)这是最关键的。我无法将数据作为 JSON POST。它发布为key=value,其中键是我在 HTTP Post 字段名称(在“字段”选项卡上)中指定的名称,值是编码的 JSON。我只想将 JSON 作为请求正文发布。我试过谷歌搜索,但找不到其他人在做这件事,这让我相信我只是在接近这个错误。任何指向正确方向的指针?
编辑:我很喜欢编写脚本(使用 Javascript 或其他语言),但是当我尝试在自定义 javascript 片段中使用 XmlHttpRequest 时,我收到一个错误,即 XmlHttpRequest 未定义。
谢谢!
我正在制作一个基本的应用程序来教初学者。每个用户都可以写笔记,但我想让用户无法查看或更新不同用户的笔记。
我有以下观点,但我不得不重复一遍。
from django.core.exceptions import PermissionDenied
...
class NoteUpdate(LoginRequiredMixin, UpdateView):
...
def get(self, request, *args, **kwargs):
self.object = self.get_object()
if self.object.owner != self.request.user:
raise PermissionDenied
return super(NoteUpdate, self).get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
self.object = self.get_object()
if self.object.owner != self.request.user:
raise PermissionDenied
return super(NoteUpdate, self).post(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我觉得可能有一种方法可以在不重复自己的情况下做到这一点。是的,我可以编写一个这样的方法并从两者中调用它:
def check_permission(self):
if self.object.owner != self.request.user:
raise PermissionDenied
Run Code Online (Sandbox Code Playgroud)
但我真正的意思是我是否覆盖了错误的方法?有没有更传统的方法来做到这一点?覆盖 .get() 和 .post() 感觉有点奇怪