Spaces:
Sleeping
Sleeping
| from django.shortcuts import render, redirect, get_object_or_404 | |
| from django.contrib import messages | |
| from rest_framework import status | |
| from rest_framework.decorators import api_view | |
| from rest_framework.response import Response | |
| from .models import Student | |
| from .serializers import StudentSerializer | |
| def student_list(request): | |
| students = Student.objects.all() | |
| serializer = StudentSerializer(students, many=True) | |
| return Response(serializer.data) | |
| def student_create(request): | |
| serializer = StudentSerializer(data=request.data) | |
| if serializer.is_valid(): | |
| serializer.save() | |
| return Response(serializer.data, status=status.HTTP_201_CREATED) | |
| return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) | |
| def student_detail(request, pk): | |
| try: | |
| student = Student.objects.get(pk=pk) | |
| except Student.DoesNotExist: | |
| return Response({'error': 'Student not found'}, status=status.HTTP_404_NOT_FOUND) | |
| if request.method == 'GET': | |
| serializer = StudentSerializer(student) | |
| return Response(serializer.data) | |
| elif request.method in ['PUT', 'PATCH']: | |
| serializer = StudentSerializer(student, data=request.data, partial=(request.method == 'PATCH')) | |
| if serializer.is_valid(): | |
| serializer.save() | |
| return Response(serializer.data) | |
| return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) | |
| def student_delete(request, pk): | |
| try: | |
| student = Student.objects.get(pk=pk) | |
| except Student.DoesNotExist: | |
| return Response({'error': 'Student not found'}, status=status.HTTP_404_NOT_FOUND) | |
| student.delete() | |
| return Response(status=status.HTTP_204_NO_CONTENT) | |
| def student_list_ui(request): | |
| students = Student.objects.all() | |
| return render(request, 'students/student_list.html', {'students': students}) | |
| def student_create_ui(request): | |
| if request.method == 'POST': | |
| name = request.POST.get('name') | |
| email = request.POST.get('email') | |
| age = request.POST.get('age') | |
| course = request.POST.get('course') | |
| try: | |
| Student.objects.create(name=name, email=email, age=int(age), course=course) | |
| messages.success(request, 'Student added successfully.') | |
| return redirect('students:student-list-ui') | |
| except Exception as e: | |
| messages.error(request, f'Error: {e}') | |
| return render(request, 'students/student_form.html', {'title': 'Add Student'}) | |
| def student_update_ui(request, pk): | |
| student = get_object_or_404(Student, pk=pk) | |
| if request.method == 'POST': | |
| student.name = request.POST.get('name') | |
| student.email = request.POST.get('email') | |
| student.age = int(request.POST.get('age')) | |
| student.course = request.POST.get('course') | |
| try: | |
| student.save() | |
| messages.success(request, 'Student updated successfully.') | |
| return redirect('students:student-list-ui') | |
| except Exception as e: | |
| messages.error(request, f'Error: {e}') | |
| return render(request, 'students/student_form.html', {'title': 'Edit Student', 'student': student}) | |
| def student_delete_ui(request, pk): | |
| student = get_object_or_404(Student, pk=pk) | |
| if request.method == 'POST': | |
| student.delete() | |
| messages.success(request, 'Student deleted successfully.') | |
| return redirect('students:student-list-ui') | |
| return render(request, 'students/student_confirm_delete.html', {'student': student}) |