根据所选父节点显示子节点

2024-03-28

嗨,我一直在寻找这个问题的答案,但找不到答案。我只有 3 个月的使用 python/django 经验,所以请原谅我的虚拟问题! 我使用 django mptt 来显示一个简单的嵌套集导航。

<ul class="root">
{% recursetree nodes %}
    <li>
        {{ node.name }}
        {% if not node.is_leaf_node %}
            <ul class="children">
                {{ children }}
            </ul>
        {% endif %}
    </li>
{% endrecursetree %}

这工作正常 - 但是我想只显示所选类别的子项(基于 slug),而不是全部。 有任何想法吗 ???


我终于这样做了:

{% recursetree nodes %}
    <li>
      <a href='/{{ node.get_absolute_url}}'>{{ node.name }}</a>
    </li>
       {% if not node.is_leaf.node %}
                {% for c in child %}
                        {% if c in node.get_children  %}
                                {% if forloop.first %}
                                   <ul class="children">
                                         {{ children }}
                                            </ul>
                                {% endif %}
                        {% endif %}
                {% endfor %}
        {% endif %}   



{% endrecursetree %}          

在视图中

category = get_object_or_404(Category, slug=slug)
child = category.get_children()
if not child : 
      child = category.get_siblings() 

但这是一个黑客行为。有人有更好的主意吗?


你需要发送一些关于你所在节点的信息,然后就是一个简单的if陈述。

关于如何通用地发送节点信息,Django中有几种方法可以做到这一点,但没有一种方法是完美的。我的首选方法是上下文处理器:http://docs.djangoproject.com/en/1.3/ref/templates/api/#writing-your-own-context-processors http://docs.djangoproject.com/en/1.3/ref/templates/api/#writing-your-own-context-processors

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据所选父节点显示子节点 的相关文章

随机推荐

  • 使用 scipy 应用 Sobel 过滤器

    我正在尝试在图像上应用 Sobel 滤波器以使用 scipy 检测边缘 我在 Windows 7 Ultimate 64 位 上使用 Python 3 2 64 位 和 scipy 0 9 0 目前我的代码如下 import scipy f
  • 空白而不是零

    Duration isnull FunctionA DateA DateB 上面的函数计算天数 如果 day 为空 则显示 值 0 而不是空白值 如何更改上面的代码 使其显示空白而不是 0 值 null 如果您的函数返回一个整数 则结果来自
  • Reflect.getMetadata 在 Angular2 中不起作用

    我用过这个 Reflect getMetadata annotations AppComponent 0 template 在 plunker 中它工作得很好http plnkr co edit f47uORghJXaq0FtD00Th p
  • asp.net Base-64 字符串中的无效字符

    我有一个 C 移动网站 并且在使用某些移动客户端时遇到问题 我在下面发布了一条跟踪 但基本上是手机浏览器或手机连接到互联网 url 的 wap 网关对表单中的视图状态隐藏输入进行编码 wEPDwULLTExNTMyOTcwOTBkGAEFB
  • 在 ASP Web API 中指定无效参数时返回错误

    我正在使用 C 和 ASP NET Web API 创建一个 API 并且希望它在使用无法识别的参数时返回错误 例如 api Events 应该有一个事件列表 api Events startTime startTime 应该返回在特定时间
  • “wordlist”的非数字第二个参数

    我正在 Eclipse android 中构建一个 c 项目并收到以下错误 这是 ndk 构建错误 与我的代码无关 Users eladb MyWorkspace android ndk r8e build gmsl gmsl 512 no
  • 获取pandas数据框中子节点的所有直接中间和最终父节点

    我的数据框具有父子关系 如下所示 child Parent relationship A1x2 bc11 direct parent bc11 Aw00 direct parent bc11 Aw00 ultimate parent Aee
  • 将 Flask 表单值转换为 int

    我有一个表格 其中发布了personIdint 到 Flask 然而 request form personId 返回一个字符串 为什么 Flask 不给我一个 int 我尝试将其转换为 int 但下面的路线返回 400 或 500 错误
  • jQuery 选择器上下文问题

    我试图做出以下选择 program row 其中 row 是包含两个表行的 jQuery 对象 其中一个 tr 具有 program 类 该选择器似乎没有找到它 但是以下方法有效 title row 其中 div title 是 tr pr
  • 使用CSS的圆形文本段落[重复]

    这个问题在这里已经有答案了 我一直在寻找一个关于如何将一段文本放置在圆圈内的体面且快速的解决方案 我发现有两种解决方案 解决方案1 浮动倍数div与文本左侧和右侧的文本高度相同 并通过更改 divwidth您可以调整文本的剩余空间 解决方案
  • SpriteKit和粒子碰撞

    我有一个粒子发射器 我想在粒子碰撞某些物理体时检测到它 SpriteKit API 中是否有本地方法可以做到这一点 或者我是否需要 作弊 单个粒子不能碰撞 不是用物理学 也不是任何其他方式 您甚至无法获得有关单个粒子的任何信息 您无法访问它
  • 2个脚本(FitVids.js、Vimeo.js)一起kill调用函数播放视频,导致:VimeoAPI不是函数

    Update以下 好吧 我这里遇到了问题 我使用这个优秀的 vimeo 类来让我的生活更轻松 http www josh ho com vimeo class http www josh ho com vimeo class 源代码在这里
  • GitHub Actions:在可重用工作流程中引用环境机密

    我已经能够在可重用工作流程中传递和引用组织和存储库机密 没有任何问题 问题 错误 是环境特定的秘密没有被传递 我尝试明确并列出所有这些并使用 秘密 继承 如果我使用 秘密 继承 我不必显式列出任何秘密 但是 引用时环境秘密为空 将它们全部列
  • 带有静态单元格的 UITableView 不会出现

    我使用 Storyboards 选项卡视图模板 创建了一个新的 Xcode 项目 我在故事板中添加了几个视图控制器 并希望使用带有静态单元格的 UITableView 我创建了它 但是当我在模拟器中运行时 单元格不会出现 除了这个故事板文件
  • Shinydashboard:Google 地点自动完成。 InvalidValueError:不是 HTMLInputElement 的实例

    我想放一个shinydashboard在一起 并有一个 Google Places 搜索框作为文本输入 下面的代码以常规方式运行shiny页面 但抛出一个InvalidValueError not an instance of HTMLIn
  • InnoDB:发现重复索引 - 这很糟糕吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 最近我们的 Magento 商店变得非常慢 我们真的不知道为什么 就在今天 我在检查数据库时注意到超过 900 个索引是相同的重复项 即存在两个 我的
  • 首次启动时无法识别 iCloud 键值存储

    我的应用程序使用 iCloud 键值存储 在多个设备之间同步唯一 ID 在应用程序首次启动时 如果它确实必须工作 那么就可以接受 看起来设备在首次启动时还不熟悉 iCloud 的值 只有在应用程序安装并运行一段时间后才熟悉 我在应用程序主视
  • Java:生成具有透明度的缩略图

    我在生成具有 Alpha 通道 透明度 的图像缩略图时遇到问题 我使用的代码是这样的 public void saveThumbnail File file String imageType if bufferedThumb null re
  • 上传错误 - 无法将 apk 文件上传到 Google Play 开发者控制台?

    我在 Google Play 上有一些应用程序已经有一段时间了 但我已经几个月没有发送更新了 现在我尝试发送更新 但在上传 apk 文件时出现上传错误 我尝试过使用另一个应用程序和另一台计算机 但出现了同样的错误 过去 5 天我一直在尝试解
  • 根据所选父节点显示子节点

    嗨 我一直在寻找这个问题的答案 但找不到答案 我只有 3 个月的使用 python django 经验 所以请原谅我的虚拟问题 我使用 django mptt 来显示一个简单的嵌套集导航 ul class root recursetree