2010-02-07 44 views

Respuesta

16

usuario actual es en la solicitud de objeto:

def my_view(request): 
    current_user = request.user 

Es la clase django.contrib.auth.models.User y tiene algunos campos, por ejemplo,

  • is_staff - Boolean. Designa si este usuario puede acceder al sitio de administración;
  • is_superuser - Boolean. Designa que este usuario tiene todos los permisos sin asignarlos explícitamente.

http://docs.djangoproject.com/en/1.1/topics/auth/#django.contrib.auth.models.User

Así que para probar si el usuario actual es superusuario puede:

if user.is_active and user.is_superuser: 
    ... 

Usted puede utilizarlo en plantilla o pasar esta a través de plantilla como variable de contexto.

+0

Excelente. Funcionó . Muchas gracias ! U rock !! –

3

Parece que debe usar built-in permissions system para esto.

+0

¿El Django almacenar el nombre del usuario actualmente conectado en algún atributo, para que pudiera conceder acceso a mis páginas en base a que (soy nuevo en Django) –

+1

El usuario se almacena en 'request.user'. A partir de ahí, solo es cuestión de acceder a los atributos en el modelo 'Usuario '. –

+0

eso es lo que estaba buscando !! muchas gracias . –

0

Echa un vistazo al decorador user_passes_test para ver sus puntos de vista. fragmentos de Django tiene un decorador relacionada:

Estos decoradores se basan en user_passes_test y permission_required, pero cuando un usuario está conectado y no pasa la prueba, se rendirá un error 403 en lugar de volver a dirigir a iniciar sesión - Solo se les pedirá a los usuarios que inicien sesión en el anónimo .

http://www.djangosnippets.org/snippets/254/

Cuestiones relacionadas