Django 查询连接两个表

Django query joining two tables

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

我试过:

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

但是它不能正常工作。

下面是我想用 Django 查询集实现的 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)

您使用 F expression 来引用数据库中字段的值。从当前对象到要与之比较的对象的字段之间必须存在关系。

我不清楚这个问题与发布的模型有什么关系,但是 F 表达式可以跟在外键后面所以

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

如果这些字段是您要比较的字段,则可以使用。