小编Cha*_*ngg的帖子

我如何从 Django 模型的(重写的) save( ) 函数向视图发送警报或消息?

语境:

  1. 模型对象的 user_account_granted 帐户指示模型对象是否链接到非空用户帐户。
  2. 当 user_account_granted 从 False 更改为 True 时,我在重写的 save() 函数中检测到这一点。在这里,我成功创建了一个用户,从模型对象中提取参数(电子邮件、用户名、姓名等)
  3. 我创建一个密码并将新帐户登录信息发送到对象的电子邮件
  4. 如果电子邮件发送失败,我会删除该帐户

问题:

我想提醒当前用户(刚刚提交了触发 save() 的表单)电子邮件要么成功(并且新帐户现在存在),要么不成功(并且没有创建新帐户)。我无法在 save() 函数中使用 Django 消息传递框架,因为它需要请求。我能做些什么?

    def save(self, *args, **kwargs):

      if self.id:
        previous_fields = MyModel(pk=self.id)
        if previous_fields.user_account_granted != self.user_account_granted:
            title = "Here's your account!"
            if previous_fields.user_account_granted == False and self.user_account_granted == True:
                user = User(
                    username=self.first_name + "." + self.last_name,
                    email=self.email,
                    first_name=self.first_name,
                    last_name=self.last_name
                )
                random_password = User.objects.make_random_password() #this gets hashed on user create
                user.set_password(random_password)
                user.save()

                self.user = user
                message = "You have just …
Run Code Online (Sandbox Code Playgroud)

python django message model save

5
推荐指数
1
解决办法
2512
查看次数

标签 统计

django ×1

message ×1

model ×1

python ×1

save ×1