假设我们有一个类Place
,它继承了一个类Restaurant
:
from django.db import models
class Place(models.Model):
name = models.CharField(max_length=50)
address = models.CharField(max_length=80)
class Restaurant(Place):
serves_hot_dogs = models.BooleanField(default=False)
serves_pizza = models.BooleanField(default=False)
如果我有一个与地点相关的类Tag
:
class Tag(models.Model):
name = models.CharField(max_length=50)
tagged = models.ManyToManyField(Place, related_name="tags")
对于一个给定的标签,我如何得到一个查询集来选择所有有这个标签的餐馆,而不是其他种类的地方?你知道吗
最简单的方法是从
Restaurant.objects
调用filter
,如下所示:但是如果您想从
Place.objects
调用filter
,您必须在父模型中使用Django多态性应用程序之一,例如Django-Polymorphic,因为Django在默认情况下不支持模型多态性。你知道吗注意:阅读This article关于OOP多态性&;This article了解有关Django模型继承的更多信息。你知道吗
相关问题 更多 >
编程相关推荐