This rule enforces that the '@receiver' decorator is placed on top of all other decorators in Django functions.
In Django, the '@receiver' decorator is used to register signal handlers. These handlers are used to respond to events that occur in the application, such as a user logging in or a database record being saved.
The order in which decorators are applied can have a significant impact on their behavior. In the case of the @receiver decorator, it is important that it is applied first, before any other decorators, in order to ensure that the signal handler is registered correctly.
If the '@receiver' decorator is not applied first, the decorators placed above it will be ignored, which can result in unexpected behavior or even errors in the application.
To fix this issue, simply move the '@receiver' decorator to the top of the list of decorators used to decorate the function.
from django.dispatch import receiver
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
@receiver(some_signal)
def my_handler(sender, **kwargs):
...
from django.dispatch import receiver
from django.views.decorators.csrf import csrf_exempt
@receiver(some_signal)
@csrf_exempt
def my_handler(sender, **kwargs):
...