Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 29, 2012 10:03:02

leechuck
От:
Зарегистрирован: 2010-11-30
Сообщения: 44
Репутация: +  1  -
Профиль   Отправить e-mail  

Свое удаление для модели в админке

Добрый день !

Если список пользователей.
Как сделать свое удаление именно для этой модели в админке ? С пользователем связывается
очень много таблиц, которые тоже удаляются.

Можно переопределить delete() для модели. Можно ли в этой случае не выполнять super для delete() ?

Может есть какой то способ переопределить удаление именно для админки.
Мне там просто флаг поставить в модели, что бы потом не отображать в админке.

Спасибо



Офлайн

#2 Июнь 29, 2012 10:10:35

leechuck
От:
Зарегистрирован: 2010-11-30
Сообщения: 44
Репутация: +  1  -
Профиль   Отправить e-mail  

Свое удаление для модели в админке

Можно ли сделать так ?

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 ?



Офлайн

#3 Июнь 29, 2012 10:24:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Свое удаление для модели в админке

Если посмотришь на реализацию delete_view класса ModelAdmin, то увидишь, что метод возвращает TemplateResponse, а твой метод этого не делает, поэтому нужно либо вызывать метод родителя, либо переписывать метод более детально.



Офлайн

#4 Июнь 29, 2012 11:03:38

leechuck
От:
Зарегистрирован: 2010-11-30
Сообщения: 44
Репутация: +  1  -
Профиль   Отправить e-mail  

Свое удаление для модели в админке

FishHook

Спасибо, посмотрел.
Там есть метод

    def delete_model(self, request, obj):
        """
        Given a model instance delete it from the database.
        """
        obj.delete()

Попробую его переопредилить !



Офлайн

#5 Июнь 29, 2012 11:05:45

leechuck
От:
Зарегистрирован: 2010-11-30
Сообщения: 44
Репутация: +  1  -
Профиль   Отправить e-mail  

Свое удаление для модели в админке

Хотя

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



Офлайн

#6 Июнь 29, 2012 11:12:51

leechuck
От:
Зарегистрирован: 2010-11-30
Сообщения: 44
Репутация: +  1  -
Профиль   Отправить e-mail  

Свое удаление для модели в админке

Переопределил delete() в модели и все путем



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version