gpt4 book ai didi

Django 类别和子类别搜索

转载 作者:行者123 更新时间:2023-12-04 05:37:41 26 4
gpt4 key购买 nike

我正在尝试使用与 this one 类似的 Category 实现在 Django Wiki 中。我想知道 Django 进行搜索以提取与父类别关联的所有对象的方式是什么。例如,如果我有一个类别“TV”并且它有子类别“LED”、“LCD”和“等 ionic ”,我如何能够轻松地查询所有电视而无需递归遍历所有子类别和子子类别(如果有是任何)。

代码明智我在想这样的事情:

class Item(models.Model):
name = ...
...
category = models.ForeignKey(Category, null=True, blank=True)

那么对于这种类型的实现,是否有任何简单的方法可以满足我的需求,或者还有其他更好的解决方案吗?

谢谢!

最佳答案

如果您想强制执行严格的类别和子类别,但也能够使用您描述的结果执行快速搜索,您可能需要制作一个“标签”表,您实际上不允许用户自己标记项目,而是作为一旦你为一个项目分配了一个类别,你就用所有父类别填充该项目的标签表,直到类别树的根节点。

例如,如果您有以下内容:
alt text http://img509.yfrog.com/img509/9845/photoho.jpg

标签表看起来像:

   id   |   tag_name   |   tv_id
1 | "tv" | 1
2 | "sd" | 1
3 | "crt" | 1
4 | "tv" | 2
5 | "HD" | 2
6 | "LCD" | 2
7 | "tv" | 3
8 | "HD" | 3
9 | "plasma" | 3

现在你的查询集看起来像 items=Item.objects.filter(tag='TV')

关于Django 类别和子类别搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2061092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com