From 1df19b8a74bf6bc493fb438130efc4ee0f38ed79 Mon Sep 17 00:00:00 2001 From: reverend Date: Sun, 25 Dec 2022 12:20:38 +0100 Subject: [PATCH] Assigning Visitors to Sessions and Images --- django_web_galleries/web_galleries/views.py | 23 +++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/django_web_galleries/web_galleries/views.py b/django_web_galleries/web_galleries/views.py index 7ebce7c..1df280c 100644 --- a/django_web_galleries/web_galleries/views.py +++ b/django_web_galleries/web_galleries/views.py @@ -6,9 +6,26 @@ from django.shortcuts import render, redirect from django.urls import reverse from .forms import ImageUploadForm -from .models import Image +from .models import ( + Image, + Visitor +) -class ImageUploadView(View): +class VisitorSessionMixin(View): + def get_visitor(self): + if self.request.session: + if 'visitor_session' in self.request.session: + if Visitor.objects.get(session_id=self.request.session['visitor_session']).exists(): + return Visitor.objects.get(session_id=self.request.session['visitor_session']) + else: + visitor = Visitor.objects.create() + self.request.session['visitor_session'] = visitor.session_id + return visitor + else: + return None + + +class ImageUploadView(VisitorSessionMixin, View): def get(self, request): form = ImageUploadForm() return render( @@ -31,6 +48,8 @@ class ImageUploadView(View): if image.private: image.access_code = secrets.token_hex(32) + image.uploaded_by = self.get_visitor() + print(image.uploaded_by) image.save() return redirect( reverse('home')