社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

Django:检查记录是否存在于两个不同的状态

Joshua • 5 年前 • 1926 次点击  

我使用两种模型在用户之间构建聊天系统:

class Chat(models.Model):
    created = models.DateTimeField(auto_now_add=True)
class Participant(models.Model):
    chat = models.ForeignKey(Chat, on_delete=models.CASCADE, related_name='participants')
    sender = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
    receiver = models.ForeignKey(CustomUser, on_delete=models.CASCADE)

参与者模型中的一条记录表示从用户发送者向用户接收者发送消息的能力。

因此,对于A和B之间的有效私人聊天,将存在两个记录,一个以AS发送方存在,另一个作为接收方,反之亦然。

由于一个用户将永远是启动聊天的第一个用户,而第一个参与者记录可以是AS发送者或B作为发送者,所以我需要知道是否有一个干净和廉价的方式来检查当用户尝试启动聊天时是否存在两个记录,并且如果存在聊天返回ID。

如何在同一查询中搜索记录的存在(发件人=A,接收器=B)和(发件人=B,接收器=A)?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52314
文章 [ 2 ]  |  最新文章 5 年前