如何在Django管理员中生成用户反馈?

时间:2013-01-19 00:51:31

标签: django django-admin

我有一个用于在游戏中安排玩家的模型,我希望调度程序能够跟踪名单的大小和其他属性。

我已经创建了一些自定义验证,当名单规则被违反时(例如,计划的球员太多或太少),它们运作得相当好。但我也希望在名单不违反规则时提供反馈。

我一直在尝试以各种方式使用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),但成功率更低。

有什么想法吗?

1 个答案:

答案 0 :(得分: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)