0
我有一個Django的模型,看起來大致是這樣的Django的過濾與嵌套查詢
class Equipment(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=100)
class Tag(models.Model):
id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True)
tag_type = models.ForeignKey(TagType)
equipment = models.ForeignKey(Equipment)
name = models.CharField(max_length=100)
class Meta:
db_table = "tag"
ordering = ["tag_type__name", "name"]
unique_together = (("tag_type", "equipment"),)
class TagType(models.Model):
id = models.PositiveSmallIntegerField(primary_key=True)
name = models.CharField(max_length=100, unique=True)
class Meta:
db_table = "tag_type"
ordering = ["name"]
TagTypes有名稱,如「設備」和「加載」
「設備」標籤可以是「暖通空調」或「照明」
「裝載」標籤可以是「可變」或「天氣」
我希望能夠篩選到有一定的TAG_TYPE與標籤名稱設備。
如果我想有一個HVAC
標籤與TAG_TYPE Equipment
以下工作設備: Equipment.objects.filter(tag__tag_type__name="Equipment", tag__name="HVAC")
但是,我認爲,在這種情況下,TAG_TYPE名稱和標記不一定來自同一個標籤。 AKA tag__tag_type__name="Equipment"
和tag__name="HVAC"
可能無法與正確的價值觀來參考。
既然可以有許多不同類型的具有不同名稱的標籤,我想確保我濾波正確的。我有辦法管理這個嗎?
爲什麼你認爲TAG_TYPE和tag_typ_name是不是來自同一個類型? –
那麼說有一個設備有兩個與之相關的標籤。一個標籤有tag_type.name ==「Equipment」&tag.name ==「Fan」。另一個標籤有tag_type.name ==「Icon」&tag.name ==「HVAC」。我相信,過濾器調用我顯示在我的崗位會有這樣的查詢集時,我只想用的設備像tag_type.name標籤==「設備」和tag.name ==「暖通空調」。 –
所以我猜你需要的是在標記表篩選: 標籤= Tags.objects.filter(TYPE_NAME =「設備公司」,名稱=「HVAC),並採取結果[x.equipement在標籤X] –