Sto creando dispositivi per permessi in Django. Sono in grado di caricarli nel modo in cui è necessario. Tuttavia, la mia domanda è ... voglio caricare un dispositivo per il tavolo auth_group_permissions
, ho bisogno di specificare un group_id
e un permission_id
, purtroppo i dispositivi non sono il modo migliore per gestirlo. C'è un modo più semplice per farlo a livello di programmazione? In modo che io possa ottenere il id
per valori particolari e averli compilati? Come si fa normalmente?Infissi Django per autorizzazioni
risposta
La soluzione corretta consiste nel creare le autorizzazioni nello stesso modo in cui opera il framework stesso.
È necessario connettersi al segnale post_syncdb
integrato nel modulo management.py
o management/__init__.py
e creare le autorizzazioni lì. La documentazione dice che qualsiasi lavoro eseguito in risposta al segnale post_syncdb
non dovrebbe eseguire alcuna modifica al database, ma dovresti anche notare che il framework stesso crea le autorizzazioni in risposta a questo segnale.
Quindi suggerisco di dare un'occhiata allo management module dell'applicazione django.contrib.auth
per vedere come dovrebbe essere fatto.
Almeno Django> = 1,7, la risposta accettata non è più la risposta corretta a causa dell'introduzione di "chiavi naturali" come opzione di serializzazione.
Si può leggere di più su chiavi naturale nel Django serialization documentation
La documentazione cita esplicitamente il caso d'uso per le chiavi naturali essere quando ..
... oggetti vengono creati automaticamente da Django durante il database processo di sincronizzazione, la chiave primaria di una determinata relazione non è facile da prevedere; dipenderà da come e quando è stata eseguita la migrazione. Questo vale per tutti i modelli che generano automaticamente oggetti, in particolare Autorizzazione, Gruppo e Utente.
Quindi per la vostra domanda specifica, per quanto riguarda auth_group_permissions
, si dovrebbe uscire il vostro dispositivo utilizzando la seguente sintassi:
python manage.py dumpdata auth --natural-foreign --natural-primary -e auth.Permission
La tabella auth_permissions deve essere esplicitamente esclusa con la bandiera -e
come quel tavolo è popolato tramite il comando migrate
e avrà già dati prima di caricare i dispositivi.
Questo dispositivo verrà quindi caricato allo stesso modo di qualsiasi altro dispositivo
- 1. Django, rapporti generici, fanno infissi
- 2. Autorizzazioni Django
- 3. Django REST Framework - Autorizzazioni separate per metodi
- 4. Django inlines autorizzazioni utente + leggi solo - problemi di autorizzazioni
- 5. Django: autorizzazioni basate sull'istanza di modello
- 6. Rails, infissi e default_scope
- 7. si aggiungono le autorizzazioni per-oggetto Django Admin
- 8. Autorizzazioni per il REST di Django su Rotte nidificate
- 9. Django 1.5: Comprensione di AbstractBaseUser e autorizzazioni
- 10. infissi interni in JavaFX
- 11. Come creare per ogni singolo progetto initial_data infissi in Django 1.7+
- 12. Infissi di dottrina - riferimenti circolari
- 13. Infissi di rotaie con BCrypt
- 14. Gruppi per oggetto utilizzando le autorizzazioni oggetto Django e django-guardian
- 15. Autorizzazioni alternative per StartInfo
- 16. Query TFS per autorizzazioni
- 17. django - confronto tra le autorizzazioni di django e l'uso delle regole di django
- 18. Quando creare le autorizzazioni Django personalizzate al livello di programmazione?
- 19. Impostazione delle autorizzazioni di amministratore Django a livello di programmazione
- 20. Le autorizzazioni del modello proxy Django non vengono visualizzate
- 21. Django: si applicano le autorizzazioni nel dispatcher URL?
- 22. Come utilizzare i gruppi e le autorizzazioni Django?
- 23. Precedenza effettiva per gli operatori infissi in Scala
- 24. Infissi temporanei di Doctrine2 per test con phpunit
- 25. Come generare infissi dal database con SqlAlchemy
- 26. Ambiente infissi dati specifici con Symfony + Dottrina
- 27. Come dare infissi agli operatori in lambda?
- 28. Impostazione autorizzazioni per cloudera hadoop
- 29. Infissi e selenio e rotaie (oh mio?)
- 30. ferroviarie test case infissi non caricando