Estoy usando django-guardian para administrar permisos por objeto.Objetos con permisos asignados por django-guardian no visibles en admin
Para un usuario dado Doy permiso todos los permisos en un objeto:
joe = User.objects.get(username="joe")
mytask = Task.objects.get(pk=1)
assign('add_task', joe, mytask)
assign('change_task', joe, mytask)
assign('delete_task', joe, mytask)
y consigo, como se esperaba:
In [57]: joe.has_perm("add_task", mytask)
Out[57]: True
In [58]: joe.has_perm("change_task", mytask)
Out[58]: True
In [59]: joe.has_perm("delete_task", mytask)
Out[59]: True
En admin.py que también hacen TaskAdmin hereda de GuardedModelAdmin
vez de admin.ModelAdmin
Ahora cuando me conecto a mi sitio con joe, en el administrador obtengo:
You don't have permission to edit anything
¿Se supone que no puedo editar el objeto mytask?
¿Debo configurar algunos permisos con el sistema de permisos basado en modelos integrado?
¿E-mail perdiendo cualquier cosa?
EDITAR
He intentado añadir la opción user_can_access_owned_objects_only
, que se supone que lidiar con mi problema, pero todavía no puedo ver nada en mi administración ...
class TaskAdmin(GuardedModelAdmin):
user_can_access_owned_objects_only = True
pass
admin.site.register(Task, TaskAdmin)
Gracias que
Debe pasar 'solicitud' y no 'request.user' en self.has_view_permission – Don
@Don Sí, gracias por señalar que =) – okm
podría ser de versiones cuestión relacionada con el cambio, pero el funcionamiento en El objeto 'Opciones' no tiene ningún atributo 'get_change_permission' – Mutant