0
說,我有一個叫做監視列表表中的所有行,這包含了我真正關心的實體的名單:獲取其中場Django的另一場比賽在另一個表
class Watchlist(models.Model):
entity = models.ForeignKey(Entity)
objects = WatchlistManager()
def __str__(self):
return str(self.entity)
而且說我有警報列表:
class DistinctAlert(models.Model):
alert_type = models.ForeignKey(AlertType, db_index=True, on_delete=models.CASCADE)
entities = models.ManyToManyField(to='Entity', db_index=True, through='EntityToAlertMap')
has_unattended = models.BooleanField(default=True)
latest_datetime = models.DateTimeField()
不顧警報類型是什麼,我試圖讓所有DistinctAlerts只要實體觀察名單的存在。
事情是這樣的:
DistinctAlert.objects.filter(entities__in=Watchlist.objects.all()).all()
ocurse這一點,因爲它們需要實體對象監視列表的對象,而不是不工作,而是。這是最好的方法是什麼?我應該怎麼做:
DistinctAlert.objects.filter(entities__in=[element.entity for element in self.all()]).all()
不知道循環訪問每個元素,構建外列表是做正確的方式,或者如果它是可能通過一個查詢集,像這樣:
DistinctAlert.objects.filter(entities__in=Watchlist.objects.all()).all()
(上面的例子不會爲我工作,因爲他們的監視列表中的對象,而不是實體對象)