Guest User

Untitled

a guest
May 20th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. app_name = 'courses'
  2.  
  3. urlpatterns = [
  4. path('index/', views.index, name='index'),
  5. path('create/', views.create, name='create'),
  6. path('delete/<int:course_id>/', views.delete, name='delete'),
  7.  
  8. ]
  9.  
  10. from django.shortcuts import render, redirect
  11. from courses.models import Course
  12. from django.http import JsonResponse
  13. from django.forms.models import model_to_dict
  14. # Create your views here.
  15.  
  16. def index(request):
  17. context = {
  18. 'courses':Course.objects.all(),
  19. }
  20. return render(request, 'courses/index.html', context)
  21.  
  22. def create(request):
  23. if request.method == 'POST':
  24. course = Course.objects.create(name=request.POST['name'], description=request.POST['description'])
  25. # return redirect('courses:index')
  26. # course is a queryset, we need to change it to a dictionary
  27. return JsonResponse(model_to_dict(course))
  28. else:
  29. return render(request, 'courses/index.html')
  30.  
  31. def delete(request, course_id):
  32. course = Course.objects.get(pk=course_id)
  33. if request.method == 'POST':
  34. course.delete()
  35. courses = Course.objects.all()
  36.  
  37. return JsonResponse((courses))
  38.  
  39. # return JsonResponse(model_to_dict(course))
  40. else:
  41. return render(request, 'courses/index.html', {'courses':Course.objects.all()})
  42.  
  43. $(document).ready(function(){
  44.  
  45. $('.course_form').submit(function(event){
  46. console.log(event);
  47. event.preventDefault();
  48. $.ajax({
  49. url: '/courses/create/',
  50.  
  51. method: 'post',
  52. data: $(this).serialize(),
  53. success: function(response){
  54. console.log(response);
  55. $('.courses').append(`<p>Name: ${response.name},
  56. Description: ${response.description}</p>
  57. <form class="delete_form" action="/courses/delete/${response.id}/" method="post">
  58.  
  59. <input type="submit" value="delete">
  60. </form>
  61. `)
  62.  
  63. $('.course_form')[0].reset();
  64.  
  65. }
  66. });
  67.  
  68. })
  69. $('delete_form').submit(function(event){
  70. console.log(event);
  71. event.preventDefault();
  72. $.ajax({
  73. url: '/courses/delete/',
  74. method: 'post',
  75. success: function(response){
  76. console.log(response);
  77. }
  78. })
  79. })
  80. })
Add Comment
Please, Sign In to add comment