0

save_model() 関数をオーバーライドして、obj.save() 呼び出しを try/catch でラップしました。

def save_model(self, request, obj, form, change):
    from concurrency.exceptions import RecordModifiedError
    from django.http import HttpResponse
    try: 

        obj.save()
        # some other stuff

    except RecordModifiedError:
        messages.error(request, "[!] Record modified. Please try again.")
        #self.message_user(request, "[!] Record modified. Please try again.", level="error")

RecordModifiedError のキャッチは機能しており、データは保存されません。ただし、保存が成功したときに表示される確認メッセージは、エラーと同様に表示されたままです。2 つの相反するメッセージが表示されています。

成功メッセージが表示されないようにする方法を知りたいです。ありがとう!

EDIT:self.message_user()機能も試しましたが、成功メッセージもブロックしませんでした。

4

3 に答える 3

0

このようにしないといけませんか?

try: 

    obj.save()
    messages.error(request, "[!] Record modified.")

except RecordModifiedError:
    messages.error(request, "[!] Record NOT modified. Please try again.")
于 2014-11-26T18:49:55.993 に答える