从Django自定义信号接收器获取信息



这实际上是我今天的第二个问题,但我想知道的是。。。是否可以从信号处理程序中检索信息。

我有一个项目列表,称之为列表,每个项目都在AppA中。每个项目都有几个特征,这些特征保存在不同的应用程序AppB中。

所以,我想我也许可以创建一个字典,dict并迭代列表中的项目。在每次迭代中,我都希望向AppB发送一个信号并检索信息,即具有类似的东西

def blob(request):
    dict = {}
    for item in list:
        signal.send(sender=None, id=item.id)
        dict[item] = (char1, char2)
    ...some html request

我的信号处理程序看起来像这样:

def handler(sender, id, **kwargs):
    model2 = Model2.objects.get(id=id)
    a = model2.char1
    b = model2.char2
    return (a, b)

然后我希望能够在网页上列出这些物品及其特征。。。问题是,很明显,信号发送器必须发送信号,并获得我想要的信息。。。。这可能吗:S?

目前,我收到一个错误,说"全局名称‘char1’没有定义……我已经将处理程序和信号导入到blob所在的view.py中……那么我的问题是不是无法解决?/应该用另一种方法来解决吗?或者我在导入东西时几乎肯定犯了一个愚蠢的错误?

这其实并不那么棘手。我想我也许应该发布它是如何解决的。在我看来,我实际上写了

    response_list=signal.send(sender=None, list=list_of_items)

然后,我重复我的response_list,将项目添加到一个新列表中,如下所示:

    snippets = []
    for response in response_list:
    logger.error(response)
    snippets.append(response[1])

然后可以像我的模板中的字典一样,在片段中调用响应。当我问这个问题时,我没有意识到我可以把一些东西等同于信号发送。。。

最新更新