django-non-leading-receiver-decorator (DJ013)
源自 flake8-django linter。
作用
检查 Django 的 @receiver
装饰器是否列在第一位,在任何其他装饰器之前。
为什么这不好?
Django 的 @receiver
装饰器很特殊,因为它不返回包装函数。 而是,@receiver
将被装饰的函数连接到信号。 如果在 @receiver
之前列出任何其他装饰器,则被装饰的函数将不会连接到信号。
示例
from django.dispatch import receiver
from django.db.models.signals import post_save
@transaction.atomic
@receiver(post_save, sender=MyModel)
def my_handler(sender, instance, created, **kwargs):
pass
建议改为