首页 > 解决方案 > Django:在导航栏中列出类别

问题描述

所以,我正在使用 Django 开发这个博客网站,我想在下拉列表中列出我拥有的所有类别,我将能够单击它们并将我带到类别详细信息页面。但我没有任何想法来实现这一点。因为我创建了navbar.html并将其包含在base.html中,所以我不知道创建哪个视图来处理它

base.html

{% load static %}

<!DOCTYPE html>
<html lang="en">
{% include 'head.html' %}
<body>
    {% include 'navbar.html' %}

    {% block content %}

    {% endblock content %}

    {% include 'footer.html' %}
    {% include 'script.html' %}
</body>
</html>

导航栏.html

{% load static %}
<header class="header">
  <!-- Main Navbar-->
  <nav class="navbar navbar-expand-lg fixed-top">
    <div class="search-area">
      <div class="search-area-inner d-flex align-items-center justify-content-center">
        <div class="close-btn"><i class="icon-close"></i></div>
        <div class="row d-flex justify-content-center">
          <div class="col-md-8">
            <form action="{% url 'search' %}">
              <div class="form-group">
                <input type="search" name="q" id="search" placeholder="What are you looking for?">
                <button type="submit" class="submit"><i class="icon-search-1"></i></button>
              </div>
            </form>
          </div>
        </div>
      </div>
    </div>
    <div class="container">
      <!-- Navbar Brand -->
      <div class="navbar-header d-flex align-items-center justify-content-between">
        <!-- Navbar Brand --><a href="{% url 'home' %}" class="navbar-brand lead">korexIT</a>
        <!-- Toggle Button-->
        <button type="button" data-toggle="collapse" data-target="#navbarcollapse" aria-controls="navbarcollapse" aria-expanded="false" aria-label="Toggle navigation" class="navbar-toggler"><span></span><span></span><span></span></button>
      </div>
      <!-- Navbar Menu -->
      <div id="navbarcollapse" class="collapse navbar-collapse">
        <ul class="navbar-nav ml-auto">
          <li class="nav-item"><a href="{% url 'home' %}" class="nav-link active ">Home</a></li>
          <li class="nav-item dropdown">
            <a href="post.html" class="nav-link dropdown-toggle" id="topicsDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Topics</a>
            <div class="dropdown-menu mt-3" aria-labelledby="topicsDropdown">
              <a href="" class="dropdown-item border-0 transition-link">lorrem</a>
              <a href="" class="dropdown-item border-0 transition-link">lorrem</a>
              <a href="" class="dropdown-item border-0 transition-link">lorrem</a>
              <a href="" class="dropdown-item border-0 transition-link">lorrem</a>
              <a href="" class="dropdown-item border-0 transition-link">lorrem</a>
              <a href="" class="dropdown-item border-0 transition-link">lorrem</a>
            </div>
          </li>
          {% if request.user.is_authenticated and request.user.is_author %}
          <li class="nav-item"><a href="{% url 'post-create' %}" class="nav-link ">create</a></li>
          {% endif %}

          {% if request.user.is_authenticated %}
          <li class="nav-item"><a href="{% url 'logout' %}" class="nav-link ">Logout</a></li>
          {% else %}
          <li class="nav-item"><a href="{% url 'login' %}" class="nav-link ">Login</a></li>
          {% endif %}
          <li class="nav-item"><a href="#" class="nav-link ">About Us</a></li>
          <li class="nav-item"><a href="#" class="nav-link ">Contact Us</a></li>
        </ul>
        <div class="navbar-text"><a href="#" class="search-btn"><i class="icon-search-1"></i></a></div>
      </div>
    </div>
  </nav>
</header>

类别模型

class Category(models.Model):
    name = models.CharField(max_length=50)

    def __str__(self):
        return self.name
    
    def get_absolute_url(self):
        return reverse('blog-detail', kwargs={'id': self.id})

我没有包含views.py文件和其他文件,因为我没有为它创建任何文件,我不知道该怎么做

标签: djangodjango-viewsdjango-templates

解决方案


推荐阅读