"""
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,
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<slug>[^\.]+)', '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<quiz_name>[\w-]+)/$',
- 'quiz.views.quiz_take'), # quiz/
-
- url(r'^(?P<quiz_name>[\w-]+)$',
- 'quiz.views.quiz_take'), # quiz
-
- url(r'^(?P<quiz_name>[\w-]+)/take/$',
- 'quiz.views.quiz_take'), # quiz/take/
-
- url(r'^(?P<quiz_name>[\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<slug>[\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<quiz_name>[\w-]+)/$',
+ 'quiz.views.quiz_take',
+ name = 'quiz_start_page'),
+
+ url(r'^(?P<quiz_name>[\w-]+)/take/$',
+ 'quiz.views.quiz_take',
+ name = 'quiz_question'),
)
"""
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,