używam django-guardian aby zarządzać za zgodą obiektu.Przedmioty z uprawnieniami przypisanymi przez Django opiekuna niewidoczne admin
dla danego użytkownika Wyrażam zgodę wszystkie pozwolenia na jednym obiekcie:
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)
a ja się, zgodnie z oczekiwaniami:
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
W admin.py ja również TaskAdmin dziedziczą GuardedModelAdmin
zamiast z admin.ModelAdmin
Teraz, gdy łączę się z moją stroną z joe, na komputerze dostaję:
You don't have permission to edit anything
Am I nie powinien być w stanie edytować mytask obiekt?
Czy muszę ustawić niektóre uprawnienia przy użyciu wbudowanego systemu uprawnień opartego na modelu?
Czy brakuje mi czegoś?
EDIT
Próbowałem dodać opcję user_can_access_owned_objects_only
, która ma do czynienia z mojego problemu, ale ja nadal nie widzę w moim administratora ...
class TaskAdmin(GuardedModelAdmin):
user_can_access_owned_objects_only = True
pass
admin.site.register(Task, TaskAdmin)
Thank Ci
Należy zdać „prośbę” a nie „” w request.user self.has_view_permission – Don
@Don Tak, dzięki za wskazanie, że =) – okm
może być wersjonowania zmian związanych problem, ale działa w Obiekt "Opcje" nie ma atrybutu "get_change_permission" – Mutant