Django DeleteView работает только со второй попытки
Немного странный вопрос и интересно, сталкивался ли с этим кто-нибудь еще здесь.
У меня есть стандартный DeleteView с GET, показывающий страницу подтверждения, содержащую форму, которая посылает сообщение в представление удаления.
Когда я нажимаю подтвердить, ничего не происходит - сообщение в представлении происходит и оно перенаправляется, как и предполагалось, однако объект не удаляется.
Если я выполню действие во второй раз, объект будет удален.
class MetricDeleteView(DeleteView):
template_name = "dashboard/administration/metric/delete.html"
button_title = "Update metric"
form_class = MetricUpdateForm
model = dashboard_metric
# Override post to test manually delete object but same thing happens
def post(self, request, *args, **kwargs):
self.object = self.get_object()
success_url = self.get_success_url()
print(self.object)
self.object.delete()
return HttpResponseRedirect(success_url)
@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
})
Я не могу понять, почему это происходит со всеми некоторыми моделями на моем сайте.
Хм, интересно. Поскольку представление является общим, посмотрели ли вы на модель, чтобы убедиться, что она не переопределяет функциональность удаления? Возможно, она не удаляет данные при первом проходе и вместо этого устанавливает переменную в 'deleted', особенно если вы работаете с синхронизацией между платформами. Например, WatermelonDB. Натан. :D