2009-06-24 15 views
9

Attualmente sto sviluppando un progetto di blog utilizzando il modello Post, che verrà utilizzato da più autori.Django: La pratica migliore per attuare CRUD al di fuori del contrib.admin

Voglio fare un'interfaccia di amministrazione/pannello di controllo in cui ogni autore del post può visualizzare l'elenco di post creato dall'autore (in modo che non vedrà il post creato dagli altri autori), modificare e multiple- cancellali.

Valid use case for django admin? ha detto che:

l'amministratore Django non è adatto per singoli profili utente, ogni utente sarebbe in grado di vedere e modificare, tutti altri profili utente. Questo è adatto a altro per un amministratore che deve gestire tutti gli utenti in una volta.

Ciò significa che deve essere creato un nuovo sistema CRUD, al di fuori dell'interfaccia contrib.admin. Quindi la domanda è: esiste qualche tecnica/modo per implementare il CRUD al di fuori del sistema contrib.admin? o, cosa devo studiare/utilizzare? come posso implementarlo bene (lo sforzo minimo)?

Grazie in anticipo :)

risposta

9

Questo è abbastanza facile da fare modificando l'amministratore Django. Se questo è l'unico motivo per abbandonare contrib.admin, potresti voler consultare alcuni articoli recenti su come personalizzare l'amministratore prima di andare avanti e gettare il bambino con l'acqua sporca.

Ho trovato alcuni probabili candidati:

e in generale: http://www.ibm.com/developerworks/opensource/library/os-django-admin/index.html

(si noti che non vi era una vecchia tecnica che ha utilizzato un thread locale Questo non è più necessario in quanto vi sono modi migliori per farlo: una menzione di questo è un segno sicuro dell'arte CLE non è aggiornato.)

+0

Grazie Andy! Questo è proprio quello che sto cercando :) Sia voi che Harper mi ha fornito ottime risposte :) cercherò di giocare con il set di query di amministrazione allora. L'ultima cosa che mi ha lasciato perplesso è la cancellazione multipla nel CRUD di amministrazione. Ma immagino che sarà un'altra storia, heheh. Grazie! –

+0

Altre azioni batch e di eliminazione sono in arrivo con Django 1.1 –

10

ti consigliamo di guardare il Django generic create/update forms. Non è l'amministratore, ma è abbastanza facile da implementare.

+0

grazie! Sperimenterò con quello :) –

0

In Django 1.3, la "vista generici" (forme CRUD) hanno cambiato per essere basato su classi. Vedi here.