2014-03-26 7 views
0

내 모델에 부울 필드가있어서 사용자에게 몇 가지 정보가 포함 된 이메일이 전송되었음을 나타냅니다. admin에서 업데이트 할 때 모델에서 save() 메서드를 사용하면 실제로 전자 메일이 전송됩니다. 그리고 이것은 작동합니다.django admin actions 대 모델 클래스의 저장

하지만 :

def send_this_email(modeladmin, request, queryset): 
    queryset.update(mail_sent=True) 
send_this_email.short_description = "Send email with access data" 

및 관리 클래스 :

actions = [send_this_email] 

실행 및 이메일되지 않는 것 같다 save() 방법은 내가 이렇게 정의 내 행동을 사용하려고

보내지 않았다. send_this_email에 저장을 실행하려면 어떻게해야합니까?

내 장고 관리자에게 중요한 문제가 있다면 grappeli를 사용하고 있습니다.

+0

하지만 전자 메일을 보내는 코드는 어디에 있습니까? –

+0

@DanielRoseman 그것은 save() 메소드 – andi

답변

1

Django의 설명서에서는 쿼리 세트에서 update()를 호출해도 저장 또는 호출 전후 저장 후크가 호출되지 않는다고 명시되어 있습니다. 전자 메일을 보내야 할 때 함수를 명시 적으로 호출하는 것이 좋습니다.

또는 admin 함수에서 save()를 호출 할 수 있지만 update() 메소드의 이점은 상실됩니다.

+0

에 있습니다. 어떻게 실행할 수 있습니까? 쿼리를 반복하고 메서드를 호출해야합니까? 시도했었다. 작동 안함. – andi

+0

예, 작동합니다. 쿼리 세트의 오브젝트를 반복 할 때 어떤 일이 발생합니까? – DavidM

+0

예. 이제 이전 값을 참조하는 방법을 모르겠습니다. – andi