¿Cómo escribo un decorador para mi vista de Django / Python?

Aquí está mi punto de vista. Básicamente, devuelve diferentes respuestas en función de si está conectado o no.

@check_login()
def home(request):
    if is_logged_in(request): 
        return x
    else:
        return y

Aquí está mi código de decorador. Solo quiero verificar si la solicitud tiene encabezados y, de ser así, iniciar sesión.

#decorator to log the user in if there are headers
def check_login():
    def check_dec(func):
        if request.META['username'] == "blah":
            login(request, user)

    return check_dec

El problema es ... ¡No sé cómo escribir un decorador adecuado en este caso! ¿Cuáles son los argumentos? ¿Cuáles son las funciones? ¿Cómo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta