From: Tom Walker Date: Wed, 11 Jun 2014 15:20:03 +0000 (+0100) Subject: cleaning up url structure X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=47fc5d56bb7e73ad00fd99d59957e2c9353e38ce;p=django_quiz.git cleaning up url structure --- diff --git a/quiz/models.py b/quiz/models.py index 8cb6364..9b2aa42 100644 --- a/quiz/models.py +++ b/quiz/models.py @@ -49,11 +49,13 @@ class CategoryManager(models.Manager): """ def new_category(self, category): """ - add a new category + add a new category, replacing spaces and making lowercase """ - new_category = self.create(category=category) + new_category = self.create(category = + category.replace(' ', '-').lower()) new_category.save() + class Category(models.Model): category = models.CharField(max_length=250, diff --git a/quiz/templatetags/quiz_tags.py b/quiz/templatetags/quiz_tags.py index 6314c26..bf8a941 100644 --- a/quiz/templatetags/quiz_tags.py +++ b/quiz/templatetags/quiz_tags.py @@ -1,5 +1,5 @@ from django import template -from django_quiz.multichoice.models import Question, Answer +from multichoice.models import Answer register = template.Library() diff --git a/quiz/urls.py b/quiz/urls.py index d077442..a1cbc56 100644 --- a/quiz/urls.py +++ b/quiz/urls.py @@ -1,30 +1,32 @@ from django.conf.urls import patterns, include, url urlpatterns = patterns('', - # quiz base url - url(r'^$', 'quiz.views.index'), - - # quiz category list - url(r'^category/(?P[^\.]+)', 'quiz.views.view_category', name='view_quiz_category'), - - # progress - url(r'^progress/$', 'quiz.views.progress'), - url(r'^progress$', 'quiz.views.progress'), - - - # passes variable 'quiz_name' to quiz_take view - url(r'^(?P[\w-]+)/$', - 'quiz.views.quiz_take'), # quiz/ - - url(r'^(?P[\w-]+)$', - 'quiz.views.quiz_take'), # quiz - - url(r'^(?P[\w-]+)/take/$', - 'quiz.views.quiz_take'), # quiz/take/ - - url(r'^(?P[\w-]+)take$', - 'quiz.views.quiz_take') # quiz/take - - + # quiz base url + url(r'^$', + 'quiz.views.index', + name = 'quiz_index'), + + url(r'^category/$', + 'quiz.views.list_categories', + name = 'quiz_category_list_all'), + + # quiz category: list quizzes + url(r'^category/(?P[\w.-]+)/$', + 'quiz.views.view_category', + name='quiz_category_list_matching'), + + # progress + url(r'^progress/$', + 'quiz.views.progress', + name = 'quiz_progress'), + + # passes variable 'quiz_name' to quiz_take view + url(r'^(?P[\w-]+)/$', + 'quiz.views.quiz_take', + name = 'quiz_start_page'), + + url(r'^(?P[\w-]+)/take/$', + 'quiz.views.quiz_take', + name = 'quiz_question'), ) diff --git a/quiz/views.py b/quiz/views.py index 3a121c9..8002fb6 100644 --- a/quiz/views.py +++ b/quiz/views.py @@ -41,12 +41,18 @@ To do: """ def index(request): - return render(request, 'quiz_index.html', { + return render(request, 'quiz_index.html', { 'categories': Category.objects.all(), }) +def list_categories(request): + return render(request, 'quiz_index.html', { + 'categories': Category.objects.all(), + }) + + def view_category(request, slug): - category = get_object_or_404(Category, slug=slug) + category = get_object_or_404(Category, category = slug.replace(' ', '-').lower()) quizzes = Quiz.objects.filter(category=category) return render(request, 'view_quiz_category.html', { 'category': category,