Моя модель Django имеет пользовательскую логику в методе delete
. Поэтому, поскольку я ослабеваю, чтобы убедиться, что эта логика is called when I call delete on my queryset
, я написал свой собственный queryset
delete.Пользовательский метод удаления в запросе
class MyQuerySet(QuerySet):
# Do we have to be any fancier here?
def delete(self):
for m in self:
m.delete()
и мой вопрос я должен сделать что-нибудь любитель чем итерация и называя delete
на каждом конкретном случае?
Обратите внимание, что это действительно неэффективно; точка метода удаления запроса заключается в том, что он делает один запрос на удаление с db, тогда как это сделает один запрос на запись. –
Я понимаю, но в этом случае дополнительная логика удаления в любом случае является дорогостоящей. Также есть места в contrib, которые используют запрос, поэтому не поймать вызов удаления вызывает проблемы для меня. –