31 lines
922 B
Python
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)
|