我有一张符号表。在我添加新符号之前,我验证符号。
为此我已经覆盖了模型中的save方法:
def save(self, *args, **kwargs):
if self.check_exist(self.name):
# Call the "real" save() method.
super(AssetsSymbol, self).save(*args, **kwargs)
else:
# Yes, the symbol is not saved in the database
# That's good.
现在使用一行或两行代码,如何通知用户他提交的无效符号?
Django仍然报告符号" TEST"已被保存(这是非常误导)
我尽量避免使用Modelforms等。
这是一个更新的实施:
@admin.register(AssetsSymbol)
class AssetSymbolAdmin(admin.ModelAdmin):
list_display = ("name", "group", "alive", "internal")
list_filter = ("name", "group", "alive", "internal")
...
def save_model(self, request, obj, form, change):
if self.check_exist(obj.name):
messages.add_message(request, messages.SUCCESS, 'Valid Bloomberg Symbold {0}'.format(obj.name))
obj.save()
else:
messages.add_message(request, messages.ERROR, 'Invalid Bloomberg Symbol {0}'.format(obj.name))
消息Invalid Bloomberg Symbol正确显示,但后面跟着一条消息,表明该符号已存储!?