In un'applicazione Django lavorare con ricette che ho sottoclasse DeleteView
di creare il mio IngredientListItemDeleteView
, ma vorrei che il risultato di get_success_url
dipendere da una proprietà del prodotto che è stato appena eliminato .Uso get_success_url su un DeleteView quando i dati in questione è stato rimosso
mi piacerebbe fare qualcosa di simile:
def get_success_url(self):
item = get_object_or_404(IngredientListItem, pk=self.kwargs['pk']) # -> 404
return this_item.recipe.get_absolute_url()
ho capito che ho un errore 404 perché l'articolo in questione non esiste più, ma non ho avuto fortuna memorizzare le informazioni relative alla voce (vale a dire, la sua ricetta contenente) prima che venga eliminato. Per esempio, se ho messo nel metodo get
qualsiasi codice come
self.success_url = get_object_or_404(IngredientListItem,
pk=self.kwargs['pk']).recipe.get_absolute_url()
poi con il tempo success_url
si vede (dopo la cancellazione), ha il valore None.
Come posso rendere il mio URL di successo dipende da questa proprietà dell'elemento eliminato?
Grazie - ma per chiarire, ho bisogno di definire self.object = self.get_object() prima che io possa effettivamente usare self.object. Grazie per il suggerimento - sembra meglio dell'utilizzo di get_item_or_404 – bryn