Удаление объекта Django-код кажется правильным, но не работает? - PullRequest
0 голосов
/ 25 июня 2011

Я работал над этим слишком долго, и, несмотря на все мои исследования, не могу выяснить, что не так.По общему признанию, я новичок в Джанго.

У меня есть приложение для оформления заявок, которое использует формы для создания, редактирования и обновления заявок.Сейчас я пытаюсь удалить их, основываясь на тикете, который является первичным ключом.

На мой взгляд, у меня есть:

def deleteTicket(request, ticket_id):
ticket = Ticket.objects.get(pk=ticket_id)
ticket.delete.all()
redirect_to = 'project/tickets.html'
return HttpResponseRedirect(redirect_to)

В моем urls.py:

(r'^(?P<project_slug>[^\.^/]+)/tickets/(?P<ticket_id>\d+)$', views.deleteTicket),

Когда я открываю билет и нажимаю на ссылку, которая должна вызывать этоотобразится ожидаемая страница, но заявка, которую я только что пытался удалить, все еще в списке.Я нигде не получаю никаких ошибок, но этот код ничего не делает.Почему?

Спасибо за вашу помощь!Это сводит меня с ума.

1 Ответ

4 голосов
/ 25 июня 2011

Я собираюсь предположить, что ваш отступ правильный.

Уверен вы просто должны идти ticket.delete(), поскольку это object, который вы удаляете, а нецелый набор запросов, вам не нужно .all().На самом деле, чтобы удалить несколько объектов, вы должны написать Ticket.objects.all().delete(), поэтому используемый вами синтаксис просто неверен, и я удивлен, что он не выдает исключение.

Кроме того, вы не должны удалять с помощьюGET запросов, только POST.

Наконец, вы должны использовать reverse для перенаправления или как минимум абсолютный URL.

...