response_add()和response_delete()

时间:2016-06-24 07:55:11

标签: python django django-models django-admin

我在管理员应用中修改了response_add和response_delete操作。

我的代码在下面。

def response_add(self, request, obj, post_url_continue=None):
    print(obj, type(obj))
    return super().response_add(request, obj, post_url_continue)


def response_delete(self, request, obj):
    print(obj, type(obj))
    return super().response_add(request, obj)

我不知道为什么在我的response_add中变量 obj 的类型是对象,但在reponse_delete中我需要的是一个字符串也是一个对象。

当我尝试使用response_delete操作中的变量 obj 在模型中查询时,它无法查询数据,因为它已被删除。

1 个答案:

答案 0 :(得分:0)

到目前为止我唯一发现的是调用response_delete DeleteView

在其上方有几行注释,表明该对象已被删除。

if request.POST and not protected:  # The user has confirmed the deletion.
    if perms_needed:
        raise PermissionDenied
    obj_display = force_text(obj)
    attr = str(to_field) if to_field else opts.pk.attname
    obj_id = obj.serializable_value(attr)
    self.log_deletion(request, obj, obj_display)
    self.delete_model(request, obj)

    return self.response_delete(request, obj_display, obj_id)

因此,没有什么可以查询它,它没有附加数据。

  

为什么在我的response_add中,变量obj的类型是对象,但在reponse_delete中我需要的是一个字符串也是一个对象。

  • response_add正在返回新创建的对象
  • response_delete返回已失效对象的字符串表示

那你能做什么?

您很可能需要pre_delete信号进行预处理,但很难说。