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