Mi piacerebbe avere un permesso più granulare nel mio progetto Django, ma non posso decidere quale app usare. Quello che ho è qualcosa di simile:Autorizzazioni Django
class Item(models.Model):
name = models.CharField(max_length=64, unique=True)
description = models.CharField(max_length=128, default='')
logo = ImageField(upload_to=/tmp, blank=True, null=True)
Ora con autorizzazioni standard Django ho la possibilità di scegliere tra aggiungere, modificare e cancellare, quello che voglio avere è un'autorizzazione cambiamento esteso, per offrire la possibilità di dare i diritti di gruppo solo per cambiare il logo, ad esempio, ma non consentire lo stesso gruppo di modificare la descrizione dell'oggetto. Non voglio o ho bisogno di un utente per entrare in relazione, ma semplicemente dare la possibilità a diversi gruppi di modificare singoli campi di un modello utilizzando l'interfaccia di amministrazione standard. Non sono nemmeno sicuro se sto parlando dell'autorizzazione per oggetto?
Qualcuno sa che cosa è meglio usare o come lo implementerei io stesso? Potrei anche immaginare di avere utenti di sola lettura che possano accedere/leggere tutto ma che non saranno in grado di modificare, anche questo non è possibile.
Grazie per qualsiasi aiuto.
No, non si tratta di autorizzazioni a livello di oggetto. Risposta breve: potrebbe essere fattibile, ma è un sacco di codice. Risposta lunga: non puoi fare ciò che stai descrivendo in un amministratore di django vaniglia. Un approccio sarebbe quello di collegare ModelAdmins separati con i campi rilevanti abilitati per separare le istanze di AdminSite. Penso che dovrai probabilmente sottoclassi AdminSite per farlo controllare con i tuoi gruppi e codificare in modo rigido le autorizzazioni di ciascun gruppo: le autorizzazioni incorporate di django non hanno un concetto di campi consentiti/non consentiti. – AdamKG
Grazie mille per la risposta attesa e la conferma.Non vedo l'ora di implementare sottoclassi AdminSite separate per raggiungere il mio compito. – tinti