0

スケジューラが名簿のサイズやその他の属性を追跡できるようにしたいゲームでプレーヤーをスケジュールするためのモデルがあります。

名簿のルールに違反している場合 (つまり、予定されているプレーヤーが多すぎたり少なすぎたりする場合) に適切に機能するカスタム検証を作成しましたが、名簿がルールに違反していない場合にもフィードバックを提供したいと考えています。

さまざまな方法で message_user を使用してメッセージを挿入しようとしています。私が成功に最も近づいたのはこれです:

def save_model(self, request, obj, form, change):
    obj.save()
    count = obj.players.count()
    self.message_user(request,"Players scheduled: %s" % count)

問題は、[保存] または [保存して編集を続行] を最初にクリックしたときに、フィードバック メッセージが正しい数に更新されないことです。ユーザーは、現在のカウントを取得するためにもう一度クリックする必要があります。

save_model メソッドはこれを行うための最良の方法ではないかもしれませんが、他のいくつかの方法 (queryset、change_view) を試しましたが、さらに成功しませんでした。

何か案は?

4

1 に答える 1

0

解決しました。obj.save() の後に form.save_m2m() を追加しました。

def save_model(self, request, obj, form, change):
    obj.save()
    form.save_m2m()
    count = obj.players.count()
    self.message_user(request,"Players scheduled: %s" % count)
于 2013-01-19T15:58:23.567 に答える