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:
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.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)
Código:
Si alguien supiera decirme donde lo estoy haciendo mal se lo agradezco, ya llevo 2 días con esta prueba, uffff.Cannot resolve keyword 'author' into field. Choices are: empresa, id, nombre
Saludos