【问题标题】:Django Error Message From django.db Models To Admin从 django.db 模型到管理员的 Django 错误消息
【发布时间】:2017-07-19 13:51:51
【问题描述】:

我正在使用 DRF 创建 API 后端。现在,我想在从管理员保存模型的同时强制执行某些验证规则。我正在使用viewset 并且可以在从其余框架调用时覆盖。但是当我通过覆盖save() 方法来验证模型时,它无法向管理员发送任何错误消息,因为它没有任何request 参数。场景是这样的:

from django.db import models

class PatientCaregiver(models.Model):    
    name = models.CharField(max_length=200, null=True, blank=True)
    email = models.CharField(max_length=200, null=True, blank=True)

    def save(self, *args, **kwargs):
        # do some processing
        # return some error or success msg(how?)

我知道我可以使用以下代码发送错误消息:

from django.contrib import messages
messages.error(request,'Error message')

但如您所见,在我的 save() 模型中,我没有请求参数。那么,如何将 save() 模型中的任何错误消息发送给管理员?

【问题讨论】:

  • 但是为什么在模型保存方法中需要那个错误信息呢?
  • 因为这是从 django 管理员执行时请求到达的地方。我想我不能使用视图来处理管理操作。我可以吗?

标签: python django django-models django-rest-framework django-admin


【解决方案1】:

处理这个问题的正确方法是在save 中引发一个异常,在视图中捕获它并在那里添加您的消息代码。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-10-12
  • 1970-01-01
  • 2019-11-21
  • 2011-07-03
  • 2021-12-11
  • 2011-04-12
  • 1970-01-01
  • 2013-03-18
相关资源
最近更新 更多