martes, 1 de noviembre de 2016

CurrentUser en Django


Que es un CurrentUser y para que diablos me puede servir??

Cuando tenemos una aplicación en Django donde manejamos sesiones la mayor parte de las veces ocupamos saber que usuario es el que se encuentra loggeado para realizar alguna acción con la base de datos, ese es el CurrentUser (Usuario Actual)

Como solucionarlo sin hacer nuestras propias funciones ?(No reinvanetar la rueda)

Muy facil con esta libreria

django-cuser

Como instalar ?

$ pip install django-cuser

No se nos olvide agregarlo a nuestras aplicaciones en settings.py

Como lo uso?

1.- Si quiero que se guarde automaticamente el usuario loggeado a un modelo:

from django.db import models
from cuser.fields import CurrentUserField
# Create your models here.

class Categoria(models.Model):
    descripcion=models.CharField(max_length=50)
    usuario = CurrentUserField()
    def __unicode__(self):
        return self.descripcion

2.-Si quiero obtener el usuario para hacer una consulta

from cuser.middleware import CuserMiddleware
from django.views.generic import ListView
from .models import Categoria

class Categorias(ListView):
 template_name = "categorias.html"
 model = Categoria
 context_object_name = "categorias"

 def get_queryset(self):
  user = CuserMiddleware.get_user()
  queryset=super(Categorias,self).get_queryset().filter(usuario=user).order_by('id')
  return queryset



No hay comentarios:

Publicar un comentario