2011-09-12 13 views
8

Sto costruendo un sito di recensioni basato su Django in cui gli utenti pubblici creano tutti i contenuti del sito. Gli utenti creano recensioni per determinati articoli e creano anche gli articoli stessi che verranno esaminati (fornendo una descrizione e un breve riepilogo dell'articolo, insieme ad alcuni tag).Devo usare la funzione di amministrazione di Django?

La mia domanda è questa: dovrei utilizzare le funzioni di amministrazione di Django per questo sito Web (ad esempio, esporre i controlli di amministrazione agli utenti pubblici)? O dovrei semplicemente attenermi alle forme normali? Non ho molta familiarità con l'aspetto amministrativo di Django, e finora ho usato solo moduli per il sito web, ma ho visto molte persone parlare delle funzionalità di amministrazione di Django e sto iniziando a chiedermi se dovessi usarli

Grazie per qualsiasi feedback!

risposta

8

Forse. Se la funzionalità di amministrazione copre la maggior parte di ciò che vuoi offrire, non c'è motivo per cui non dovresti usarlo come punto di partenza.

django.contrib.admin è un'applicazione come qualsiasi altra e fornisce fondamentalmente un'interfaccia CRUD ai tuoi modelli. L'accesso può essere controllato tramite gruppi/permessi, proprio come faresti per un'applicazione che scrivi tu stesso. Puoi dare pieno accesso a un modello con un solo liner, ma ovviamente dovrai configurarlo correttamente quando lo si apre agli altri.

Vedi anche la mia domanda Django AdminSite/ModelAdmin for end users? e simili domande Exposing django admin to users. Harmful? e How to make Django admin site accessed by non-staff user?

Per quanto riguarda gli argomenti circa la "destinazione d'uso" del admin, si prega di notare l'aggiornamento della protezione di Django, alla fine dello scorso anno: http://www.djangoproject.com/weblog/2010/dec/22/security/ per quanto riguarda i parametri querystring in elenchi di oggetti. Tale aggiornamento (citazione: "un utente malintenzionato con accesso all'amministratore [...]") è una chiara indicazione che l'implementazione dell'amministratore del sistema di autorizzazione viene costantemente controllata.

+1

Link informativi. Grazie! –

3

Non vorrei esporre l'interfaccia di amministrazione agli utenti regolari. È possibile utilizzare il lato di autenticazione e gestione degli utenti (per i propri scopi), ma di solito è preferibile offrire agli utenti un modo separato per gestire i propri oggetti. Inoltre, non si corre il rischio di concedere i privilegi sbagliati agli utenti (o di concedere loro i propri diritti).

Avere una lettura dei documenti (https://docs.djangoproject.com/en/dev/ref/contrib/admin/) se si desidera una panoramica migliore su ciò che può fare.

3

No. L'admin di django non è destinato a nessun utente finale.

La funzione di amministrazione di django ha lo scopo di assistere lo sviluppatore del sito Web, e questo è tutto. Anche l'utilizzo da parte degli amministratori del sito è controindicato, sebbene in pratica la maggior parte dei siti di piccole dimensioni riescano a farla franca visto che parlano solo di poche persone che possono contattare personalmente lo sviluppatore se si mettono nei guai.

Per gli scopi, le voci di revisione e il flusso di lavoro nella creazione degli elementi sono una parte fondamentale del set di funzionalità dell'applicazione. L'amministratore ti darà delle idee, ma sarebbe un errore tentare di costruire la tua applicazione su di esso.

+1

L'amministratore di Django è destinato agli amministratori del sito. È da utilizzare come qualsiasi normale back-end del sito Web, in cui gli amministratori del sito possono aggiungere e moderare il sito Web. Da nessuna parte la documentazione si dice che è destinata solo agli "sviluppatori web" – MortalViews

Problemi correlati