Django查询连接两个表

问题描述 投票:1回答:1

我是django的新朋友。我想在尝试使用select_related的django中创建查询,但是我不知道如何插入条件的第二部分:AND model1.qty >= model2.items

我尝试过:

Model1.objects.select_related('model2).filter(model1.qty__gte=?)

但是它不能正常工作。

下面是我要使用Django queryset实现的SQL查询:

 SELECT model1.name,model2.name WHERE model1.id=model2.model1.id AND model1.qty >= model2.items 

我的模特:

class Article(models.Model): 
    date_crea = models.DateTimeField('Créer le', auto_now_add=True)
    designation = models.TextField('designation', max_length=500)
    seuil = models.IntegerField('Seuil d\'alerte')

class Stock(models.Model):
    date_crea = models.DateTimeField('Créer le', auto_now_add=True)
    article = models.ForeignKey(Article, on_delete=models.CASCADE)
    qte_reel = models.IntegerField('stock reel',default=0)
django inner-join django-queryset
1个回答
0
投票
您使用F expression来引用数据库中字段的值。从当前对象到要比较的对象上的字段之间必须存在关系。

我不清楚问题与发布的模型之间的关系,但是F表达式可以跟随外键,所以>

Stock.objects.filter( qte_reel__gte = F( 'article__seuil' ))

如果这些字段是您要比较的字段,则可以。 
© www.soinside.com 2019 - 2024. All rights reserved.