Sto utilizzando Django DeleteView in un modello e ho creato un URL & visualizzazione. È possibile saltare il processo di caricamento del modello _confirm_delete e pubblicare immediatamente l'eliminazione.Django DeleteView senza modello di conferma
risposta
DeleteView
risponde a POST
e GET
richieste, GET
richiesta di conferma modello di visualizzazione, mentre POST
cancella esempio.
È possibile inviare POST
richiesta, senza la conferma con la forma simile a questo:
<form method="POST" action="{% url "your_delete_url_name" %}">
{% csrf_token %}<input type="submit" value="DELETE">
</form>
Se non si desidera avere un collegamento invece tasto modulo, utilizzare alcuni javascript per fare forma invisibile, che verrà sottoposto a link click.
Non è buona norma usare GET
richiesta per l'aggiornamento o la cancellazione, ma se proprio insisti è possibile scorciatoia get
metodo nella classe di visualizzazione per post
, vale a dire:
def get(self, *args, **kwargs):
return self.post(*args, **kwargs)
Sì, basta cambiare il parametro successivo. Nella risposta di risposta, assicurati che il dizionario che hai inserito abbia qualcosa di simile a questo: { 'next': '/<your_path_here>}/' }
, assicurati di confermare le modifiche prima di aggiungere il parametro next
. Potresti voler cambiare le funzioni get
e post
della tua vista.
Non ho alcun GET o POST vista, tutto ciò genera con la DeleteView – yaniv14
Va bene allora, beh non credo che si può cambiare senza cambiare la vostra 'funzione di posto d', e non c'è modo per fare ciò a partire da 1.5 (per quanto a mia conoscenza) guardando la documentazione: https://docs.djangoproject.com/en/1.5/ref/class-based-views/flattened-index/#deleteview. Se non sai come usare le funzioni 'get()' e 'post()' all'interno dei CBV, allora ti suggerisco di conoscerle. –
Oppure si può ridefinire get()
metodo nel vostro DeleteView
:
class YourDeleteView(DeleteView):
model = YourModel
success_url = '<success_url>'
def get(self, request, *args, **kwargs):
return self.post(request, *args, **kwargs)
Ma attenzione con questo, in modo che questo non pregiudica altre funzionalità.
Tutto ciò che dovete fare è sovrascrivere il metodo get_success_url
della vista di cancellazione. Quindi cancellerà direttamente l'oggetto dal DB. Ad esempio:
class YourView(DeleteView):
model = YourModel
def get_success_url(self):
return reverse('your_redirect_view')
- 1. Come aggiungere un pulsante Annulla a DeleteView in django
- 2. Django admin, sezione senza "modello"?
- 3. Django TimeField Modello senza secondi
- 4. Elimina elementi da ListView in Django 1.5
- 5. Convalida tramite DeleteView prima dell'eliminazione dell'istanza
- 6. URL tag modello in modello di Django
- 7. Newbie Django modello di errore
- 8. Velocità di rendering modello Django
- 9. django-allauth: come modificare l'url di conferma email?
- 10. django nel modello
- 11. Convalida del campo modello Django senza modulo personalizzato
- 12. Posso avere un modulo Django senza il modello
- 13. Django - Memorizza codice HTML senza escape nel modello
- 14. Posso creare un modello in Django senza ID automatico?
- 15. Django personalizzato Salva modello
- 16. Scelte del modello di Django
- 17. Django, variabili di modello globali
- 18. Django modello di modifica Disegno
- 19. Email di conferma e politica password senza identità ASP.NET
- 20. È possibile sovrascrivere il metodo utilizzato per chiamare la pagina di conferma dell'eliminazione dell'amministratore di Django?
- 21. Devise conferma di registrazione
- 22. Modello di rendering di Django all'interno di un modello
- 23. Campo modello Blob Django
- 24. Modello utente Django Oauth
- 25. Modulo% in modello Django
- 26. Django Modello() vs Model.objects.create()
- 27. Registrazione Django, modello
- 28. django select_related nel modello
- 29. Modello Django Poll
- 30. Modello Django: campo NULLable
Grazie al suo funzionamento soddisfacente con il metodo post. – yaniv14
siete i benvenuti :) – bmihelac