Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2016, 15:14
marco_sa
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 16 años, 10 meses
Puntos: 0
Un usuario solo ve lo que el publica en el backend

Hola a todos

Estoy probando Django y me he quedado atascado, intento hacer lo siguiente, quiero que un usuario solo pueda ver en la parte de admin lo que el ha publicado.

Por ejemplo tengo 2 usuarios 1 y 2, cada uno podra solo ver lo que el a publicado, no podra ver lo que ha publicado el otro.

En la docu oficial que me la tengo trillada viene una manera con una funcion, la cual tengo implementada asi:

Este es mi admin.py

Código:
from django.contrib import admin

# Register your models here.
from .models import Cerrajero


class CerrajeroAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super(CerrajeroAdmin, self).get_queryset(request)
        if request.user.is_superuser:
            return qs
        #print(author = request.user)
        return qs.filter(author = request.user)


admin.site.register(Cerrajero, CerrajeroAdmin)

mi modelo esta asi:

Código:
from django.db import models


# Create your models here.
class Cerrajero(models.Model):
    empresa = models.CharField(max_length=200)
    nombre = models.CharField(max_length=200)

    @property
    def __str__(self):
        return '{} {}'.format(self.empresa, self.nombre)
Cuando estoy con el superusuario, veo los datos de cerrajero perfecto, pero cuando me logeo con otro user el 1 o el 2 , me devuelve este error.

Código:
Cannot resolve keyword 'author' into field. Choices are: empresa, id, nombre
Si alguien supiera decirme donde lo estoy haciendo mal se lo agradezco, ya llevo 2 días con esta prueba, uffff.

Saludos