首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从django管理员处重新订购导航条

从django管理员处重新订购导航条
EN

Stack Overflow用户
提问于 2020-04-21 12:04:08
回答 1查看 810关注 0票数 0

因此,我目前正在进行一个项目,客户已经要求这个要求。

基本上,我必须在管理面板中提供某种机制,以便管理员可以订购导航条项目。电流导航条就像上面的图片一样,管理员应该能够将订单设置为eg。关于家的签证处

我是Django的新手,但我有很好的编程技巧。谁能给我指明正确的方向?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-22 13:07:14

您将不得不使导航条显示数据驱动。

  1. 为导航条显示创建一个模型。
代码语言:javascript
复制
from django.db import models

class Navbar(models.Model):
    name = models.CharField(max_length=100)
    display_order = models.IntegerField(null=True, blank=True)
  1. 注册模型,以便用户可以在管理中修改。
代码语言:javascript
复制
from django.contrib import admin
from .models import Navbar

admin.site.register(Navbar)
  1. 为每个想要的导航条链接为模型类创建对象。
  2. 使用content_processors将导航条对象传递给包含导航条的模板(通常是base.html)。此链接详细说明如何使用内容处理器。

如何将数据传递给django布局(如'base.html'),而不必通过每个视图提供数据?

您在content_processors.py中的函数应该与此类似。

代码语言:javascript
复制
from .models import Navbar
def add_navbar_data_to_base(request):
    return {
        'navbar': Navbar.objects.all().order_by('display_order')
    }
  1. 现在,您可以使用for循环将链接添加到base.html模板,它们将按照display_order指定的顺序显示,该顺序可以在admin中修改。
代码语言:javascript
复制
#base.html
<!DOCTYPE html>
{% load static %}
<html>

<head>
</head>

<body>
    {% block nav %}
    <nav class="navbar sticky-top navbar-expand navbar-light">

        <ul class="navbar-nav">
           {% for link in navbar %}
            <li class="nav-item">
                <a class="nav-link">{{ link }}</a>
            </li>
           {% endfor %}

        </ul>
    </nav>

    {% endblock %}

    {% block content %}
    {% endblock %}

</body>

</html>

这段代码还没有经过测试,但是总体思路应该是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61343129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档