Tworzę urządzenia dla uprawnień w Django. Mogę je załadować tak, jak jest to potrzebne. Jednak moje pytanie brzmi .. Czy chcę załadować urządzenie do tabeli auth_group_permissions
, muszę określić group_id
i permission_id
, niestety urządzenia nie są najlepszym sposobem na obsłużenie tego. Czy jest to łatwiejszy sposób programowo? Aby uzyskać id
dla konkretnych wartości i wypełnić je? Jak to zwykle się dzieje?Oprawy Django dla uprawnień
Odpowiedz
Właściwe rozwiązanie polega na utworzeniu uprawnień w ten sam sposób, w jaki robi to sama struktura.
Należy podłączyć do wbudowanego sygnału post_syncdb
albo w module management.py
lub management/__init__.py
i utworzyć tam uprawnienia. Dokumentacja mówi, że jakiekolwiek prace wykonane w odpowiedzi na sygnał post_syncdb
nie powinny wykonywać żadnych zmian w bazie danych, ale należy również zauważyć, że framework sam tworzy uprawnienia w odpowiedzi na ten sygnał.
Proponuję więc zapoznać się z aplikacją management module aplikacji django.contrib.auth
, aby zobaczyć, jak należy to zrobić.
Przynajmniej Django> = 1.7, zaakceptowana odpowiedź nie jest już poprawną odpowiedzią z powodu wprowadzenia "naturalnych kluczy" jako opcji serializacji.
można przeczytać więcej na temat kluczy naturalnych w Django serialization documentation
Dokumentacja wyraźnie wymienia przypadek użycia kluczy naturalne jest, gdy ..
... obiekty są tworzone automatycznie przez Django podczas bazy danych proces synchronizacji, klucz podstawowy danej relacji nie jest łatwy do przewidzenia; będzie zależeć od tego, jak i kiedy wykonano migrację. Dotyczy to wszystkich modeli, które automatycznie generują obiekty, w tym w szczególności uprawnienia, grupy i użytkownika.
Więc dla konkretnego pytania dotyczące auth_group_permissions
, by zrzucić swoje urządzenie przy użyciu następującej składni:
python manage.py dumpdata auth --natural-foreign --natural-primary -e auth.Permission
tabela auth_permissions musi być wyraźnie wyłączonych z flagą -e
jako że tabela jest pusta komendą migrate
i będą już mieć dane przed załadowaniem urządzeń.
Urządzenie to zostanie następnie załadowane w taki sam sposób, jak inne urządzenia
- 1. Oprawy Django i OneToOneField
- 2. Korzystanie Oprawy z factory_girl
- 3. Oprawy doktrynalne - okrągłe odnośniki
- 4. Oprawy szyn z BCryptem
- 5. django - porównywanie uprawnień django i używanie reguł django
- 6. Jak korzystać z grup i uprawnień Django?
- 7. java.net.SocketException: odmowa uprawnień dla Androida
- 8. Środowisko Oprawy specyficznych danych z Symfony + Nauki
- 9. Przesyłanie pliku django: [Errno 13] Odmowa uprawnień: '/ static'
- 10. Uprawnienia REST dla Django na zagnieżdżonych trasach
- 11. UWAGA: nie można zmienić uprawnień dla każdego:
- 12. Przyznanie uprawnień użytkownika dla FileProvider daje SecurityException
- 13. Odrzucona odmowa uprawnień vm + apache dla mkdir()
- 14. Używanie gitosis do określania uprawnień dla oddziału?
- 15. Sprawdzanie uprawnień ACL kilku użytkowników dla obiektu
- 16. Jak rozwiązać Linux uprawnień problem dla OpenCart
- 17. Grupy na obiekt przy użyciu uprawnień do obiektów Django i django-guardian
- 18. Pytest używa tej samej oprawy dwa razy w jednej funkcji
- 19. : Odmowa uprawnień
- 20. Szablon Django dla pętli
- 21. aplikacja Authentication dla Django
- 22. Django max_length dla IntegerField
- 23. Odzyskaj listę uprawnień
- 24. Sprawdzanie uprawnień właściciela pliku
- 25. Pozycjonowanie ról/uprawnień?
- 26. Błąd uprawnień Odbicia Java
- 27. Usuwanie uprawnień rozszerzeń
- 28. Odmowa uprawnień pomimo odpowiednich uprawnień przy użyciu PHP
- 29. Upuszczanie uprawnień roota
- 30. Błąd uprawnień gem RVM