Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django过滤器子类模型_Python_Django_Url_Parameters_Filter - Fatal编程技术网

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?除非你打算手动输入查询,否则我不明白为什么信息不能通过后端的视图传递。我意识到我之前已经问过一个问题,答案与你的链接相同。我将看看我以前的代码是否可以重用。