Django의 관리자 삭제 확인 페이지를 호출하는 데 사용되는 메소드를 무시할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1015072

  •  06-07-2019
  •  | 
  •  

문제

Django의 관리자 페이지에서 관리자가 객체의 삭제 버튼을 클릭하면 작업을 수행하고 싶습니다. 다시 말해, "당신은 확실합니까?"에 도착하기 전에 몇 가지 코드를 실행하고 싶습니다. 확인 페이지를 삭제합니다.

나는이 객체의 템플릿 페이지를 무시할 수 있다는 것을 알고 있지만 더 쉬운 것을 기대하고있었습니다 (즉, 모델 또는 양식의 메소드를 무시합니다).

이견있는 사람?

도움이 되었습니까?

해결책

당신은 무시할 수 있습니다 ModelAdmin.delete_view() 방법, 좋아요 :

class MyModelAdmin(ModelAdmin):
    def delete_view(self, request, object_id, extra_context=None):
        # if request.POST is set, the user already confirmed deletion
        if not request.POST:
            perform_my_action()
        super(MyModelAdmin, self).delete_view(request, object_id, extra_context)

다른 팁

우리는 django.shortcuts.redirect를 사용하여 다음과 같이 삭제를 중단 할 수 있습니다.

def check_del(self, object_id):
    produkt = Produkt.objects.get(id = object_id)
    if produkt.typsklepu_set.all():
        return False
    else:
        return True

def delete_view(self, request, object_id, extra_context=None):
    # if request.POST is set, the user already confirmed deletion
    if not request.POST and self.check_del(object_id):
        return super(ProduktAdmin, self).delete_view(request, object_id, extra_context)
    elif request.POST:
        return super(ProduktAdmin, self).delete_view(request, object_id, extra_context)
    else:
        msg = u'Can not delete this object.'
        messages.error(request, msg)
        return redirect('..')
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top