2012-12-20 5 views
4

두 번째 모델을 업데이트하는 사전 저장 신호 수신기가 있습니다. 이 예제와 동일 :관리자의 신호에서 사용자 정의 메시지 표시

나는 사용자가 리스너 모델을 업데이트 성공하고 몇 가지 정보를 제공 알려드립니다. 일반적으로 django에있는 메시지 기능을 내장하여 사용할 수 있다고 생각합니다. 문제는 신호가 '요청'에 액세스 할 수 없다는 것입니다. 그래서 내장 된 Django Messages Framework를 사용하는 방법을 알지 못합니다.

관리자의 사용자에게 메시지를 보내는 공지 된 방법이 있습니까? 어쩌면 모델 중 하나의 save() 메소드를 오버라이드하면 될까요? (하나의 신호를 보내거나받는),하지만 save() 메서드 중 하나를 '요청'에 대한 액세스 권한이 있다고 생각하지 않아?

다른 사람들도이 작업을 수행해야합니다.

답변

5

ModelAdmin에서 save_model 메서드를 재정의 할 수 있습니다. 다음과 같은 것 :

from django.contrib import messages 
# your imports 
... 
# your code 

def save_model(self, request, obj, form, change): 
    obj.user = request.user 
    obj.save() 
    # you can just call super(YourModelAdminName, self).save_model(request, obj, form, change) 
    messages.add_message(request, messages.INFO, 'Text of message') 
+0

save()와 save_model()의 차이점은 무엇입니까? save()를 들여다 보았을 때 인수가 없다. 언제 전화가 왔어? 문서에서 save_model()을 발견했지만이 정보가 표시되지 않습니다. – Jglstewart

+0

죄송 합니다만 ModelAdmin에 save() 메소드가 없습니다. save_model() 만 – Max

관련 문제