Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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 如何内部连接到另一个查询集/查询_Python_Django - Fatal编程技术网

Python 如何内部连接到另一个查询集/查询

Python 如何内部连接到另一个查询集/查询,python,django,Python,Django,我对Django ORM有问题。我有一个天气模型: class Weather(models.Model): city = models.ForeignKey(City, verbose_name='Город', on_delete=models.CASCADE) temperature = models.FloatField('Температура') source = models.CharField('Источник', max

我对Django ORM有问题。我有一个天气模型:

    class Weather(models.Model):
        city = models.ForeignKey(City, verbose_name='Город', on_delete=models.CASCADE)
        temperature = models.FloatField('Температура')
        source = models.CharField('Источник', max_length=100)
        date = models.DateTimeField('Дата и время')
我想从每个城市的每个来源获得真实的天气。我为此创建了sql查询,但不知道如何使用Django ORM

查询:

SELECT * FROM api_weather t1 INNER JOIN
(
    SELECT MAX(date) AS latest_date, city_id, source FROM api_weather WHERE date<='2019-07-04 15:50' GROUP BY city_id, source
) t2
ON t1.city_id = t2.city_id AND t1.source = t2.source AND t1.date = t2.latest_date

但我不知道如何将模型天气与此查询进行内部连接。

我需要的是实际天气,而不是最高温度
Weather.objects.values('city', 'source', 'temperature').annotate(latest_date=Max('date'))
Weather.objects.filter(date__lte=datetime.datetime.now()).values('city_id', 'source').annotate(latest_date=Max('date'))
Weather.objects.values('city', 'source', 'temperature').annotate(latest_date=Max('date'))