Skip to content

Commit 487d549

Browse files
committed
implement parameter validation
1 parent 28696e8 commit 487d549

2 files changed

Lines changed: 12 additions & 11 deletions

File tree

frontend/urls.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@
2626
])),
2727
path('<int:course_id>/topic/<int:topic_id>/content/', include([
2828
re_path(r'add/(?P<type>' + '|'.join([key for key in CONTENT_TYPES.keys()]) + ')/$', views.content.AddContentView.as_view(), name='content-add'),
29-
path('<int:content_id>', include([
30-
path('/comment/<int:pk>/delete/', views.DeleteComment.as_view(), name='comment-delete'),
31-
path('/comment/<int:pk>/edit/', views.EditComment.as_view(), name='comment-edit'),
32-
path('/coursebook/add/', views.coursebook.add_to_coursebook, name='coursebook-add'),
33-
path('/coursebook/remove/', views.coursebook.remove_from_coursebook, name='coursebook-remove'),
29+
path('<int:content_id>/', include([
30+
path('comment/<int:pk>/delete/', views.DeleteComment.as_view(), name='comment-delete'),
31+
path('comment/<int:pk>/edit/', views.EditComment.as_view(), name='comment-edit'),
32+
path('coursebook/add/', views.coursebook.add_to_coursebook, name='coursebook-add'),
33+
path('coursebook/remove/', views.coursebook.remove_from_coursebook, name='coursebook-remove'),
3434
])),
3535
path('<pk>/', views.ContentView.as_view(), name='content'),
3636
path('<pk>/read/', views.content.ContentReadingModeView.as_view(), name='content-reading-mode'),

frontend/views/coursebook.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
from django.http import HttpResponseRedirect
2+
from django.shortcuts import get_object_or_404
23
from django.urls import reverse
34
from base.models import Course, Favorite, Topic, Content
45

56

67
def add_to_coursebook(request, *args, **kwargs):
78
user = request.user.profile
8-
course = Course.objects.get(pk=kwargs['course_id'])
9-
topic = Topic.objects.get(pk=kwargs['topic_id'])
10-
content = Content.objects.get(pk=kwargs['content_id'])
9+
course = get_object_or_404(Course, pk=kwargs['course_id'])
10+
topic = get_object_or_404(Topic, pk=kwargs['topic_id'])
11+
content = get_object_or_404(Content, pk=kwargs['content_id'])
1112

1213
Favorite.objects.create(content=content, user=user, course=course)
1314
return HttpResponseRedirect(reverse('frontend:content', args=(course.id, topic.id, content.id,)))
1415

1516

1617
def remove_from_coursebook(request, *args, **kwargs):
1718
user = request.user.profile
18-
course = Course.objects.get(pk=kwargs['course_id'])
19-
topic = Topic.objects.get(pk=kwargs['topic_id'])
20-
content = Content.objects.get(pk=kwargs['content_id'])
19+
course = get_object_or_404(Course, pk=kwargs['course_id'])
20+
topic = get_object_or_404(Topic, pk=kwargs['topic_id'])
21+
content = get_object_or_404(Content, pk=kwargs['content_id'])
2122

2223
Favorite.objects.filter(course=course, user=user, content=content).delete()
2324
return HttpResponseRedirect(reverse('frontend:content', args=(course.id, topic.id, content.id,)))

0 commit comments

Comments
 (0)