即使显示错误消息且未保存对象,save_model方法也会说:
"真实状态" RealState对象"已成功添加。"。
admin.py
class RealStateAdmin(admin.ModelAdmin):
model = RealState
can_delete = False
list_display = ['name', 'country', 'state', 'city', 'acquisition_date', 'acquisition_value']
inlines = [Inlines.CurrentValueRealStateAdminInline]
def save_model(self, request, model, form, change):
model.owner = Owner.objects.get(user_id=request.user.id)
ca = CheckingAccount.objects.get(owner_id=model.owner_id)
if(model.acquisition_value <= ca.balance):
if(model.rental_value ==""):
model.rental_value = None
super(RealStateAdmin, self).save_model(request, model, form, change)
else:
messages.error(request, "Insufficient funds in your checking account to make this transaction.");
在验证CheckingAccount没有足够的资金购买东西后,我提出错误(它运作正常)。 如果条件失败=&gt;我的超级没有保存(预期的行为)。 但是save_model的绿色信息仍然出现。 任何想法?
答案 0 :(得分:0)
它在ModelAdmin的response_add中添加了这些消息。如果您不想要消息,最简单的方法是按照消息documentation中的描述关闭消息。
你可以从你的INSTALLED_APPS删除'django.contrib.messages', 来自MIDDLEWARE_CLASSES的MessageMiddleware行和消息 来自TEMPLATES的上下文处理器。
如果您希望在save_model
方法中清除消息的其他位置显示消息。
当存储实例为时,消息被标记为清除 迭代(并在处理响应时清除)。
storage = messages.get_messages(request)
for message in storage:
do_something_with(message)
与以前相同的参考。显示错误消息的正确方法是
self.message_user(request,
"Insufficient funds in your checking account to make this transaction.",
messages.SUCCESS)