我使用的是Django和python3.7。我有这两种型号。注意它们都有一个相似的字段
class Article(models.Model):
publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE,)
class WebPageStat(models.Model):
objects = WebPageStatManager()
publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE, )
score = models.BigIntegerField(default=0)
我想编写一个Django ORM查询,它选择其中一个模型,但在shared列上进行连接,以便在“score”字段上进行比较。我试过下面的方法,但遗憾的是错误
Article.objects.filter(publisher=webpagestat.publisher, webpagestat.score__gte==100)
File "<input>", line 1
SyntaxError: positional argument follows keyword argument
如何在join中包含“webgestat”表
在Django中,通过使用lookups that span relations可以轻松地完成所需的操作。在您的示例中,您需要添加一种在ORM中引用相关对象的方法。这是通过设置} and ^{} here 。简而言之,您的模型应该如下所示:
ForeignKey
字段的related_name
属性来实现的。虽然这不是严格必要的,但用这种方式更清楚。你可以阅读更多关于^{完成后,您的查询将通过以下代码执行:
简而言之,这个查询所做的就是选择每个发布者至少有一个得分大于或等于100的web页面stat的文章
相关问题 更多 >
编程相关推荐