sprint/Main/views/ChatWithView.py
Egor Matveev 17573e1a76 chats
2021-12-19 23:15:19 +03:00

31 lines
922 B
Python

from django.contrib.auth.models import User
from django.db.models import Q
from Main.models import Chat
from SprintLib.BaseView import BaseView, AccessError
class ChatWithView(BaseView):
required_login = True
endpoint = "chat_with"
chat = None
def pre_handle(self):
if "username" not in self.request.GET:
raise AccessError()
def get(self):
chat = Chat.objects.filter(
Q(
from_user=self.request.user,
to_user__username=self.request.GET["username"],
)
| Q(
to_user=self.request.user,
from_user__username=self.request.GET["username"],
)
).first()
if chat is None:
chat = Chat.objects.create(from_user=self.request.user, to_user=User.objects.get(username=self.request.GET['username']))
return "/chat?chat_id=" + str(chat.id)