Django DeleteView only works on second attempt

Question:

Bit of a strange one and wondering if anyone else here has come across this.

I have a standard DeleteView with the GET showing a confirmation page containing a form that posts to the delete view.

Whenever I click confirm nothing happens – the post to the view occurs and it redirects as intended, however the object is not deleted.

If I then perform the action a second time the object is deleted.

class MetricDeleteView(DeleteView):
    template_name = "dashboard/administration/metric/delete.html"
    button_title = "Update metric"
    form_class = MetricUpdateForm
    model = dashboard_metric

    @cached_property
    def dashboard_score(self):
        return self.get_object().score

    def get_success_url(self):
        return reverse_lazy("administration:dashboard:update_score", kwargs={
            'dashboard': self.dashboard_score.dashboard.id,
            'pk': self.dashboard_score.id
        })

I can’t for the life of me figure out why this is occurring across all some models on my site.

Asked By: nmcilree

||

Answers:

Hm, interesting. As the view is generic, have you looked at the model to check it doesn’t override the delete functionality? Perhaps it doesn’t delete on the first pass and sets a variable to ‘deleted’ instead, especially if you’re working with syncing across platforms. WatermelonDB, for instance. Nathan. 😀

Answered By: homalley
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.