Devo selezionare diversi oggetti da eliminare dal mio database in django usando una pagina web. Non esiste una categoria tra cui selezionare, quindi non posso cancellare da tutti loro in quel modo. Devo implementare il mio modulo di eliminazione ed elaborarlo in django o django ha un modo per farlo già? Come implementato nell'interfaccia di amministrazione.Elimina più oggetti in django
56
A
risposta
101
È possibile eliminare qualsiasi set di query che si desidera. Ad esempio, per eliminare tutti i post del blog con un certo modello Post
Post.objects.all().delete()
e ad eliminare qualsiasi post con una futura data di pubblicazione
Post.objects.filter(pub_date__gt=datetime.now()).delete()
Tu, però, bisogno di trovare un modo per restringere giù il tuo QuerySet. Se vuoi solo una vista per cancellare un oggetto particolare, guarda nello delete generic view.
EDIT:
Ci scusiamo per il malinteso. Penso che la risposta sia da qualche parte. Per implementare il tuo, combinare ModelForm
se generic views. Altrimenti, esamina le app di terze parti che offrono funzionalità simili. In uno related question, la raccomandazione era django-filter.
Problemi correlati
- 1. Elimina oggetti in Django tramite link html
- 2. Elimina più oggetti in Rails con un controller RESTful?
- 3. creare più oggetti in Django di amministrazione in una volta
- 4. Elimina più documenti in CouchDB
- 5. Elimina righe duplicate in Django DB
- 6. Elimina elementi da ListView in Django 1.5
- 7. Come restituire più oggetti legati con ForeignKey in Django
- 8. Elimina più proprietà oggetto?
- 9. DRY oggetti unici in Django
- 10. Stampa di oggetti in Django
- 11. Elimina dinamicamente i moduli in linea in Django
- 12. oggetti Elimina nella s3 utilizzando jolly corrispondenza
- 13. Elimina più dizionari in un elenco
- 14. django-admin - come modificare ModelAdmin per creare più oggetti contemporaneamente?
- 15. Django Rest Framework serial nid scrivibile con più oggetti nidificati
- 16. Django: fusione oggetti
- 17. Elimina dinamicamente dal formset del modello django
- 18. sailsjs elimina/aggiorna più righe
- 19. Paging seconda raggruppamento di oggetti in Django
- 20. Admin Django: has_delete_permission Ignorato per azione "Elimina"
- 21. elimina righe da più tabelle
- 22. Django Elimina tutto ma lo scorso cinque set di query
- 23. Elimina oggetti in ambito utilizzando la relazione a cascata
- 24. Archivio oggetti per oggetti in Django tra le richieste
- 25. Django - filtraggio su oggetti correlati
- 26. L'azione di amministrazione predefinita "elimina selezionata" in Django
- 27. In Django Admin come disabilitare il collegamento Elimina
- 28. Serializzazione di oggetti chiave esterna in Django
- 29. Utilizzando Django bulk_create oggetti in chiavi esterne?
- 30. Django - Archiviazione di oggetti in sessione
No hai frainteso la domanda. Capisco che posso cancellare tutto. Ma ho bisogno di selezionare gli oggetti da eliminare con un modulo su una pagina web. E quindi elaborare i dati restituiti dal modulo nel mio views.py. Quindi esegui il loop su cosa è stato restituito dal modulo durante l'eliminazione dei dati. Ma volevo sapere qual è la pratica migliore per implementarlo in django. – Dean
Ah, mio errore! Vorrei utilizzare un'app di terze parti o viste generiche con 'ModelForm's. –
@Dean, dai un'occhiata alla vista di cancellazione. Oppure puoi semplicemente scrivere la tua vista ... In definitiva, probabilmente stai ricevendo un elenco di PK e stai chiamando delete sul tuo modello ... 'MyModel.objects.filter (id__in = request.POST.getlist ('delete_list')) .delete() 'e sono sicuro che vuoi qualcosa per assicurarti che una persona a caso non possa cancellare tutti gli oggetti nel tuo DB indovinando i PK. –