Django中的自定义信号

2 投票
1 回答
2176 浏览
提问于 2025-04-16 10:10

我在使用Django的自定义信号时遇到了问题,信号在不同的应用之间无法互相识别。我在我的

core/signals.py

from django.dispatch.dispatcher import Signal
# Signal-emitting code... emits whenever a file upload is received
# ----------------------------------------------------------------

upload_recieved = Signal(providing_args=['data'])


def upload_received_handler(sender, data, **kwargs):
    print 'upload received handler'

print 'connecting signal'
upload_recieved.connect(upload_received_handler)

文件中做了一个简单的调用。

core/models.py

import signals

[the model]

blog/admin.py

from models import article, category, media 
from django.contrib import admin
from libs.shared.core.tasks import Create_Audit_Record
from libs.shared.core import signals



class ArticleModelAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        upload_recieved.send(sender=self, data='ddd')
        instance = form.save()
        return instance



admin.site.register(article, ArticleModelAdmin)
admin.site.register(category)
admin.site.register(media)

中也是如此。可是我在运行时遇到了错误,无法找到upload_received这个函数。有没有什么想法?

祝好,

1 个回答

7

你还没有在你的admin.py文件里导入upload_recieved这个名字。

撰写回答