Форум сайта python.su
Добрый день !
Если список пользователей.
Как сделать свое удаление именно для этой модели в админке ? С пользователем связывается
очень много таблиц, которые тоже удаляются.
Можно переопределить delete() для модели. Можно ли в этой случае не выполнять super для delete() ?
Может есть какой то способ переопределить удаление именно для админки.
Мне там просто флаг поставить в модели, что бы потом не отображать в админке.
Спасибо
Офлайн
Можно ли сделать так ?
class MyModelAdmin(ModelAdmin): def delete_view(self, request, object_id, extra_context=None): if request.POST: user = User.objects.get(id=object_id) user.deleted = true user.save #super(MyModelAdmin, self).delete_view(request, object_id, extra_context)
Офлайн
Если посмотришь на реализацию delete_view класса ModelAdmin, то увидишь, что метод возвращает TemplateResponse, а твой метод этого не делает, поэтому нужно либо вызывать метод родителя, либо переписывать метод более детально.
Офлайн
FishHook
def delete_model(self, request, obj): """ Given a model instance delete it from the database. """ obj.delete()
Офлайн
Хотя
Warning
ModelAdmin.save_model() and ModelAdmin.delete_model() must save/delete the object, they are not for veto purposes, rather they allow you to perform extra operations
Офлайн
Переопределил delete() в модели и все путем
Офлайн