覆盖Django模型的save方法

时间:2015-04-01 12:22:48

标签: python django

我有一张符号表。在我添加新符号之前,我验证符号。

为此我已经覆盖了模型中的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正确显示,但后面跟着一条消息,表明该符号已存储!?

0 个答案:

没有答案