2015-10-15 18 views
11

miałem zamiar użyć django-guardian aż natknąłem się na następujące w oficjalnej dokumentacji:Jak radzić sobie teraz z uprawnieniami do obiektu w Django?

https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#handling-authorization-in-custom-backends

Uprawnienia można ustawić nie tylko od rodzaju obiektu, ale też za konkretnej instancji obiektu. Korzystając z metod has_add_permission(), has_change_permission() i has_delete_permission() dostarczanych przez klasę ModelAdmin, można dostosować uprawnienia dla różnych instancji obiektów tego samego typu.

Czy to oznacza, że ​​django-guardian nie jest już potrzebny w nowszych wersjach Django?

Proszę wyjaśnić.

+2

Te metody nie są nowe. Pamiętaj, że dotyczą tylko administratora. –

+0

Powiązane: https://stackoverflow.com/a/33247890/2586761 – ptim

Odpowiedz

13

Rzeczywiście, podczas czytania dokumentów, byłem podekscytowany, że Django obsłuży "sprawdzanie uprawnień obiektu" po wyjęciu z pudełka, especially in the admin, i że będzie to kwestią czasu, aby zrozumieć, w jaki sposób mogę go aktywować.

Jednak, this does not seem to always be the case.

Django undoubtedly strives, aby zapewnić podstawy (API) do takiego wdrożenia, ale wdrożenie to czasami wymaga dobrych umiejętności kodowania i zrozumienia Django.

Jest to programista, który dostarczy te narzędzia razem przez creating the app, który odpowiada ich potrzebom. To może być łatwe lub ... nie takie proste!

Ta sprzeczna informacja stanowi podstawę dla moich przeszukiwań internetowych, które koncentrują się na znalezieniu rozwiązania problemu "uprawnień na obiekt", w jakiś sposób ... skutecznie na potrzeby mojego projektu lub jego skali i oczywiście moje własne umiejętności kodowania i Django zrozumienie do tej pory.

Django-guardian wydaje się być najsolidniejszą, pełnowartościową aplikacją do tego celu.

Istnieją również inne more lightweight django applications, które odpowiadają również konkretnym potrzebom, które są stabilne w produkcji.

Starając się związać koniec z końcem w tym jakże trudnym zadaniu, jestem skłonny do używania django-rules ze względu na prostotę i skupienie się na funkcjonowaniu moich potrzeb.