Python Django过滤器子类模型
我有(基本上)以下模型:Python Django过滤器子类模型,python,django,url,parameters,filter,Python,Django,Url,Parameters,Filter,我有(基本上)以下模型: class foo(models.model): name = models.CharField(max_length=255) size = models.PositiveIntegerField() class bar(foo): colour = models.CharField(max_length=25) class baz(foo): material = models.CharField(max_length=25)
class foo(models.model):
name = models.CharField(max_length=255)
size = models.PositiveIntegerField()
class bar(foo):
colour = models.CharField(max_length=25)
class baz(foo):
material = models.CharField(max_length=25)
我想做的是根据url参数过滤这些模型。因此,如果url是http://www.mysite.com/catalogue/foo?size=3
然后显示大小为3的所有foo
、bar
和baz
对象
如果url是http://www.mysite.com/catalogue/foo?size=3&colour=red&colour=green
然后,如果大小为3且颜色为红色或绿色,则显示所有属性为size
和color
的foo
对象(即bar
对象)
这行得通吗?(更新:关于之前提出的问题,比我在下面写的要好。)
解释了为什么这在Django中效率低下——基本上是因为它需要所有子类跨表进行昂贵的联接。(我写了一个ORM,它可以实现这样的多态性,查询很快就会失控。Django的人在这里做出了正确的决定。)
本文描述了一种编写MixIn以单独查询每个子类的方法。如果你需要跨应用程序的行为,请考虑执行类似的操作。
如果这是针对单个视图,您最好(更快、更容易理解)编写视图来查询每个子类,并创建一个所有结果的列表。您首先要使用什么来生成这些URL?除非你打算手动输入查询,否则我不明白为什么信息不能通过后端的视图传递。我意识到我之前已经问过一个问题,答案与你的链接相同。我将看看我以前的代码是否可以重用。