我对编程非常陌生,特别是Django,但是无法解决如何使用任何先前的答案来获得优势....
道歉,如果我的问题太模糊,但基本上,我有两个不同的应用程序,我们称之为应用程序A和应用程序B,两个不同数据库上的数据,但应用程序包含相同单个项目的信息。
我想在我的“编辑详细信息”页面上编辑此信息,同时尽可能使应用程序保持独立(AppB可以了解AppA中的功能,但反之亦然)...我想我真正想要的是一个信号是这样的:
AppA中的“提交”视图,当我提交数据更改时(使用文本框)调用该视图。然后保存AppA的数据..
然后在执行HttpResponseRedirect之前,信号会发送到AppB,理想情况下会更新其数据。
不幸的是,我无法真正开始工作。我的问题是,如果我将'request'放入save_details的参数中,我会收到类似“save_details()正好需要3个参数(2个给定)”的错误“....有没有人知道一种聪明的方式来获得这样的东西来工作?
我在AppA中的提交功能看起来像这样......
def submit(self, request, id):
signal_received.send(sender=self, id=id)
q = get_object_or_404(AppA, pk=id)
q.blah = request.POST.get('wibble from the form')
...
return Http.....
在我的AppB signals.py文件中,我已经放了。
signal_received = django.dispatch.Signal(providing_args=['id'])
def save_details(sender, uid, **kwargs):
p = AppB.objects.get(id=id)
p.wobble = request.POST.get('wobble from the form')
...
signal.received.connect(save_details)
显然上面没有在其参数中提及请求,这似乎是必要的,但如果我补充一点,我就会对参数的数量产生问题。
(我已经在每个文件的顶部导入了所有正确的东西,我认为......因此我将其关闭。) 关于上述内容的任何观点都将受到赞赏.... “请求”需要成为第一个参数吗?它似乎不喜欢我之前使用“self”但是我试图尽可能多地复制文档底部的示例(https://docs.djangoproject.com/en/dev/topics/signals/),但我在信号接收函数中需要的额外功能是弄乱了我。
提前致谢...