如何在我的category_list.html中传递 {% url 'category' %}?



我有一个详细的类别视图,如果我在URL直接传递它的工作只是很好。但如果我想传递它作为一个链接在我的模板它得到一个错误。以下是我的模型:

class Category(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return (self.name)
def get_absolute_url(self):
return reverse("home")

以下是我的观点:

class CategoryClassView(TemplateView):
model = Category
template_name = "categories.html"

def get_context_data(self, **kwargs):
cats = kwargs.get("cats")
category_posts = Category.objects.filter(name=cats.replace('-', ' '))
context = {'cats':cats.replace('-', ' ').title(), 'category_posts':category_posts}
return context

这是我的网址:

path('category/<str:cats>/', CategoryClassView.as_view(), name='category')

这是我的模板:

{% extends "base.html" %}
{% block content %}
{% for category in category_list %}
<div class="card">
<div class="card-header">
<span class="font-weight-bold"><a href="">{{ category.name}}</a></span> &middot;
</div>
</div>
{% endfor %}
{% endblock content %}

你能给你的答案写一个更详细的解释吗?为什么只是传递{% url '类别' %}不工作?为了更好地理解,也可以提供一些有用材料的链接。

你应该这样做,因为你在url中有参数:

{% url 'category' cats=category.name %}

也可以用as:

{% url 'category' %}?cats={{ category.name }}

相关内容

  • 没有找到相关文章

最新更新