Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- app_name = 'courses'
- urlpatterns = [
- path('index/', views.index, name='index'),
- path('create/', views.create, name='create'),
- path('delete/<int:course_id>/', views.delete, name='delete'),
- ]
- from django.shortcuts import render, redirect
- from courses.models import Course
- from django.http import JsonResponse
- from django.forms.models import model_to_dict
- # Create your views here.
- def index(request):
- context = {
- 'courses':Course.objects.all(),
- }
- return render(request, 'courses/index.html', context)
- def create(request):
- if request.method == 'POST':
- course = Course.objects.create(name=request.POST['name'], description=request.POST['description'])
- # return redirect('courses:index')
- # course is a queryset, we need to change it to a dictionary
- return JsonResponse(model_to_dict(course))
- else:
- return render(request, 'courses/index.html')
- def delete(request, course_id):
- course = Course.objects.get(pk=course_id)
- if request.method == 'POST':
- course.delete()
- courses = Course.objects.all()
- return JsonResponse((courses))
- # return JsonResponse(model_to_dict(course))
- else:
- return render(request, 'courses/index.html', {'courses':Course.objects.all()})
- $(document).ready(function(){
- $('.course_form').submit(function(event){
- console.log(event);
- event.preventDefault();
- $.ajax({
- url: '/courses/create/',
- method: 'post',
- data: $(this).serialize(),
- success: function(response){
- console.log(response);
- $('.courses').append(`<p>Name: ${response.name},
- Description: ${response.description}</p>
- <form class="delete_form" action="/courses/delete/${response.id}/" method="post">
- <input type="submit" value="delete">
- </form>
- `)
- $('.course_form')[0].reset();
- }
- });
- })
- $('delete_form').submit(function(event){
- console.log(event);
- event.preventDefault();
- $.ajax({
- url: '/courses/delete/',
- method: 'post',
- success: function(response){
- console.log(response);
- }
- })
- })
- })
Add Comment
Please, Sign In to add comment