leechuck
Июнь 29, 2012 10:03:02
Добрый день !
Если список пользователей.
Как сделать свое удаление именно для этой модели в админке ? С пользователем связывается
очень много таблиц, которые тоже удаляются.
Можно переопределить delete() для модели. Можно ли в этой случае не выполнять super для delete() ?
Может есть какой то способ переопределить удаление именно для админки.
Мне там просто флаг поставить в модели, что бы потом не отображать в админке.
Спасибо
leechuck
Июнь 29, 2012 10:10:35
Можно ли сделать так ?
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)
Не выполняя super для delete_view ?
FishHook
Июнь 29, 2012 10:24:29
Если посмотришь на реализацию delete_view класса ModelAdmin, то увидишь, что метод возвращает TemplateResponse, а твой метод этого не делает, поэтому нужно либо вызывать метод родителя, либо переписывать метод более детально.
leechuck
Июнь 29, 2012 11:03:38
FishHook
Спасибо, посмотрел.
Там есть метод
def delete_model(self, request, obj):
"""
Given a model instance delete it from the database.
"""
obj.delete()
Попробую его переопредилить !
leechuck
Июнь 29, 2012 11:05:45
Хотя
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
leechuck
Июнь 29, 2012 11:12:51
Переопределил delete() в модели и все путем