如何使用信号获取请求值,以能够实例化聊天对象

问题描述

我正在完成一个大学项目,每当用户向其他人发送消息时,我都会停留在生成通知的过程中,虽然我有一个通知模型,但无法将消息发送给通知

在django admin中,我已经可以插入通知显示屏幕,但是只能手动进行,当用户发送消息时,它不会发送到通知模型:'(

from django.db import models
from django.db.models.signals import post_save,post_delete

class Chat(models.Model):
    codigoSala = models.CharField(max_length=20,unique=True)
    locador = models.CharField(max_length=50,blank=False,null=False)
    locatario = models.CharField(max_length=50,null=False)
    nomeSala = models.CharField(max_length=200,blank=True,null=True)

    def __str__(self):
        super().__init__()
        return self.codigoSala

    def add_chat(self):
        sender_message = Chat(
            self.codigoSala,self.locador,self.locatario,self.nomeSala)            
        sender_message.save()

class Mensagem(models.Model):
    texto = models.CharField(max_length=80)
    chat = models.ForeignKey(Chat,on_delete=models.CASCADE)

    def __str__(self):
        return self.texto


    def add_message(sender,instance,*args,**kwargs):
        message = instance

据我所知,这里我无法获得此参数信息,信号不允许请求参数(在我的情况下为add_message)

下面的这些值在url中传递,我设法获得了这些值,但是我尝试了不同的方法解决我的实际问题,但我忘记了如何做,现在我找到了一种解决问题的方法,这个重要的部分丢失了,哈哈

  codigoSala = ? 
  locador = ?
  locatario = ?
  nomeSala = ?

  context = {
            'codigoSala':codigoSala,'locador': locador,'locatario':locatario,'nomeSala':nomeSala
        }

        
        stream = Mensagem(texto=message,chat=context)
        
        stream.save()


post_save.connect(Mensagem.add_message,sender=Mensagem)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)