Vì vậy, tôi đọc mã nguồn Django (gửi 1.5) rằng bây giờ bạn có thể đăng ký nhiều nhiều tín hiệu đến một chức năng nhận:Củng cố nhiều tín hiệu post_save với một máy thu
def receiver(signal, **kwargs):
"""
A decorator for connecting receivers to signals. Used by passing in the
signal (or list of signals) and keyword arguments to connect::
@receiver(post_save, sender=MyModel)
def signal_receiver(sender, **kwargs):
...
@receiver([post_save, post_delete], sender=MyModel)
def signals_receiver(sender, **kwargs):
...
"""
... implementation code...
Tuy nhiên, tôi muốn đăng ký nhiều tín hiệu post_save từ các người gửi khác nhau đến cùng một chức năng. Ngay bây giờ, tôi chỉ cần gọi
post_save.connect(fn_name, model_name)
cho mỗi kiểu máy tôi có. Có cách nào tốt hơn để làm điều này với khả năng trang trí Django 1.5 @receiver mới?
Đây phải là câu trả lời được chấp nhận, mặc dù nó có thể được làm khô hơn với một trang trí tùy chỉnh. – DylanYoung
Nó có thể được nhiều hơn nữa; tuy nhiên, tôi nghĩ điều đó sẽ gây tổn hại cho sự rõ ràng trong trường hợp này. – freethebees
Câu trả lời hay nhất cho câu hỏi –