【发布时间】:2014-04-03 15:27:40
【问题描述】:
我是 OOP 和其他一切的新手。我想为调用视图时调用子进程的 django 泛型类(DetailView)创建一个方法。这是我目前所拥有的,并且工作正常:
class ThingsObject(SingleObjectMixin):
template_name = 'thingsdb/stuff.html'
queryset = Things.objects.all()
class ThingsView(ThingsObject, generic.DetailView):
pass
所以我想定义一个在脚本上调用 subprocess 的方法,其参数包含请求对象,如下所示:
def foo(self):
bar= "".join(["python", "bar.py", str(self.object)])
subprocess.call(bar, shell=True)
我希望在调用视图时运行该方法。响应应该是该脚本返回的内容,我想将其作为上下文添加到模板中。
我意识到这个问题的答案对于普通程序员来说可能是非常基础的,但我已经尝试了一段时间的一些解决方案,但没有得到任何结果。因此,我想问您如何做到这一点?
我的想法可能是我应该重写 dispatch 方法以包括运行脚本并返回额外的上下文。但老实说,我不知道在基于类的视图中我在做什么。
提前致谢!
【问题讨论】:
-
不确定您希望在这里实现什么。为什么要在子进程中调用 Python 脚本(而不是仅仅导入并调用它)?响应应该是什么?
-
抱歉,我在写原始问题时一定是喝醉了,我遗漏了一个重要的成分 - 响应应该是脚本返回的内容,我想将其作为上下文添加到模板中。子进程并不重要,但我使用它是因为我认为它是在调用脚本时添加参数的一种方式。我想我可以更直接地做到这一点。我将使用此信息更新我的问题。