-- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/507df760-e873-4372-b20d-9b218fbf1496n%40googlegroups.com.
from django.shortcuts import render, redirect from django.contrib.auth.decorators import login_required from django.contrib.auth import authenticate, login from django.contrib import messages from .forms import VideoUploadForm from .models import Video, Progress from django.http import JsonResponse from django.contrib.auth.models import User from django.middleware.csrf import get_token from django.urls import reverse_lazy
def home(request): return render(request, 'home.html') def login_view(request): if request.method == 'POST': username = request.POST['username'] password = request.POST['password'] user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return JsonResponse({'success': True}) # Return success response else: return JsonResponse({'success': False, 'message': 'Invalid username or password.'}) # Return failure response else: return render(request, 'login.html') """def login_view(request): continue_watching_url = reverse_lazy('continue_watching') return render(request, 'login.html', {'continue_watching_url': continue_watching_url})""" """@login_required def continue_watching(request): user = request.user progress_list = Progress.objects.filter(user=user) context = {'progress_list': progress_list} return render(request, 'continue_watching.html', context)""" @login_required def continue_watching_view(request): progress_list = [ {'video': {'id': 1, 'title': 'Video 1'}, 'progress': 50}, {'video': {'id': 2, 'title': 'Video 2'}, 'progress': 80}, {'video': {'id': 3, 'title': 'Video 3'}, 'progress': 10}, ] return render(request, 'continue_watching.html', {'progress_list': progress_list}) def get_progress_view(request, video_id): # Perform logic to fetch progress for the given video_id # Replace this with your actual implementation progress = 0 if video_id == 1: progress = 75 elif video_id == 2: progress = 50 elif video_id == 3: progress = 90 return JsonResponse({'progress': progress}) def update_progress(request, video_id): # Your logic to update the video progress video = Video.objects.get(id=video_id) csrf_token = get_token(request) # Retrieve the CSRF token using the get_token() function return render(request, 'update_progress.html', {'video_id': video_id, 'csrf_token': csrf_token}) def upload_video(request): if request.method == 'POST': form = VideoUploadForm(request.POST, request.FILES) if form.is_valid(): form.save() return redirect('video_list') else: form = VideoUploadForm() return render(request, 'upload_video.html', {'form': form}) def video_list(request): videos = Video.objects.all() return render(request, 'video_list.html', {'videos': videos}) def display_video(request, video_id): video = Video.objects.get(id=video_id) return render(request, 'display_video.html', {'video': video})Title: Upload Video
Upload Video
{% csrf_token %} {{ form.as_p }} Title: LoginLogin
{% csrf_token %}Welcome to the Home Page
This is the content of the home page.
Feel free to explore our website and discover amazing features.
Get StartedVideo List
-
{% for video in videos %}
-
{{ video.title }}
{% empty %}
- No videos available. {% endfor %}
Continue Watching
{% if progress_list %}-
{% for progress in progress_list %}
- {{ progress.video.title }} {{ progress.progress }} {% endfor %}
No videos available.
{% endif %} Title: Update ProgressUpdate Video Progress
from django.conf.urls.static import static from django.conf import settings from django.urls import path, include from django.contrib import admin from myapp import views # Import the views module urlpatterns = [ path('', views.home, name='home'), path('admin/', admin.site.urls), path('accounts/', include('django.contrib.auth.urls')), path('login/', views.login_view, name='login'), path('continue_watching/', views.continue_watching_view, name='continue_watching'), path('get_progress/<int:video_id>/', views.get_progress_view, name='get_progress'), path('update_progress/<int:video_id>/', views.update_progress, name='update_progress'), path('upload_video/', views.upload_video, name='upload_video'), path('display_video/<int:video_id>/', views.display_video, name='display_video'), path('video_list/', views.video_list, name='video_list'), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
import os from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent SECRET_KEY = 'django-insecure-2#fnufoeoz=*qkws72cd9vuf33r=sj!w=8(*+up2abi#0nc=ku' DEBUG = True ALLOWED_HOSTS = [] LOGIN_URL = '/accounts/login/' INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'myproject.urls' import os TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], # 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], 'loaders': [ 'django.template.loaders.filesystem.Loader', # 'django.template.loaders.app_directories.Loader', ], }, }, ] WSGI_APPLICATION = 'myproject.wsgi.application' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'resume', 'USER': 'root', 'PASSWORD': 'admin', 'HOST': '127.0.0.1', 'PORT': '3306', 'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'" } } } LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_TZ = True STATIC_URL = '/static/' DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'Title: Display Video