我想知道使用INNER JOIN -clause的SQL查询的django等效项。我有两个与ForeignKey链接的模型。
class Item(models.Model): item_name = models.CharField(max_length=100) item_is_locked = models.BooleanField(default=False) class Request(models.Model): item = models.ForeignKey(Item, on_delete=models.CASCADE) item_owner = models.ForeignKey(settings.AUTH_USER_MODEL) message_body = models.TextField(max_length=5000, null=True)
我想从“表”中将“ item_is_locked”值设置为false的请求表中获取字段
如果使用SQL查询,我将使用以下代码:
SELECT Request.item_owner,Request.message_body FROM Request INNER JOIN Item ON Request.item_id=Item.id AND Item.item_is_locked=False;
您可以使用filter和only获得所需的结果。
filter
only
尝试:
Request.objects.filter(item__item_is_locked=False).only('item_owner', 'message_body')