【问题标题】:Know if signal is triggered from django admin [duplicate]知道信号是否从 django admin [重复] 触发
【发布时间】:2020-05-28 15:20:45
【问题描述】:

只有当模型从 django admin 保存时我才需要发送邮件,我正在尝试使用 sender.user.is_superuser 但我找不到具体方法

【问题讨论】:

    标签: python django django-signals


    【解决方案1】:

    你不能用信号做到这一点,但你可以用你的ModelAdminsave_model() method做到这一点。

    例如:

    from django.contrib import admin
    from django.core.mail import send_mail
    
    class MyModelAdmin(admin.ModelAdmin):
        def save_model(self, request, obj, form, change):
            super().save_model(request, obj, form, change)
            send_mail(...)
    

    【讨论】:

      【解决方案2】:

      不可能:

      Accessing the user's request in a post_save signal

      “做不到。当前用户只能通过请求获得,在使用纯模型功能时不可用。以某种方式访问​​视图中的用户。”

      “Django 的模型信号旨在通知其他系统组件与实例相关的事件及其尊重的数据”

      可能的解决方案:

      https://stackoverflow.com/a/35145746/3466907

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-31
        • 2011-09-21
        • 2021-03-11
        • 2012-05-27
        • 1970-01-01
        相关资源
        最近更新 更多