我在管理员应用中修改了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 在模型中查询时,它无法查询数据,因为它已被删除。
答案 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
信号进行预处理,但很难说。