Skip to content

Commit

Permalink
Added a class based view for the detail page of a model related to a …
Browse files Browse the repository at this point in the history
…category.
  • Loading branch information
tgecho authored and coordt committed May 8, 2011
1 parent c89c954 commit 76d7461
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions categories/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,37 @@ def get_template_names(self):
return names


class CategoryRelatedDetail(DetailView):

path_field = 'category_path'
object_name_field = None

def get_object(self, **kwargs):
queryset = super(CategoryRelatedDetail, self).get_queryset()
category = get_category_for_path(self.kwargs[self.path_field])
return queryset.get(category=category,slug=self.kwargs[self.slug_field])

def get_template_names(self):
names = []
opts = self.object._meta
path_items = self.kwargs[self.path_field].strip('/').split('/')
if self.object_name_field:
path_items.append(getattr(self.object, self.object_name_field))
while path_items:
names.append( '%s/category_%s_%s%s.html' % (opts.app_label,
'_'.join(path_items),
opts.object_name.lower(),
self.template_name_suffix)
)
path_items.pop()
names.append('%s/category_%s%s.html' % (opts.app_label,
opts.object_name.lower(),
self.template_name_suffix)
)
names.extend(super(CategoryRelatedDetail, self).get_template_names())
return names


class CategoryRelatedList(ListView):

path_field = 'category_path'
Expand Down

0 comments on commit 76d7461

Please sign in to comment.