получить имя атрибута на основе слаг - PullRequest
0 голосов
/ 05 января 2019

У меня есть страница со списком статей на основе категорий. Категория отфильтрована из слизня в URL.

Я хочу отобразить тег в шаблоне с названием категории.

С помощью get_context_data я могу извлечь слаг и использовать его как {{categoryslug}} Но как мне получить название категории по данному слагу?

Model.py

class Category(models.Model):
    name = models.CharField(max_length=50,unique=True, blank=True)
    slug = models.SlugField(max_length=100,unique=True, blank=True)

def __str__(self):
    return self.name

class Article(models.Model):

    title= models.CharField(max_length=40, blank=True) 
    category = models.ForeignKey('Category', on_delete= models.PROTECT, related_name="pcat", blank=True)

    def __str__(self):
        return self.title

View.py

class ListArticleView(ListView):
    model = Article
    context_object_name = "listcat"
    template_name = "myapp/categories.html"
    paginate_by = 5

def get_queryset(self):
    return Article.objects.filter(category__slug=self.kwargs['cat_slug'])


def get_context_data(self, **kwargs):
    context=super(ListArticleView,self).get_context_data(**kwargs)
    context['categoryslug']=self.kwargs['cat_slug']
    return context

URLS.py

path(('/<cat_slug>'), views.ListArticleView.as_view(), name='some_categories'))
...