欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用 django orm 寫 exists 條件過濾實例

 更新時間:2020年05月20日 17:11:46   作者:xufwind  
這篇文章主要介紹了使用 django orm 寫 exists 條件過濾實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

要用django的orm表達sql的exists子查詢,是個比較麻煩的事情,需要做兩部來完成

from django.db.models import Exists, OuterRef
 
# 1. 定義子查詢條件
relative_comments = Comment.objects.filter(
 post=OuterRef('pk'), # 注意外鍵關聯方式:post為Comment表的字段,pk表示關聯另一表主鍵
)
 
# 2. 使用annotate和filter共同定義子查詢
Post.objects.annotate( # 使用exists定義一個額外字段
 recent_comment=Exists(recent_comments),
).filter(recent_comment=True) # 在條件中通過檢查額外字段實現exists子查詢過濾

這種方式比較麻煩,有其它簡便方式的歡迎分享

官網參考: https://docs.djangoproject.com/en/2.1/ref/models/expressions/#filtering-on-a-subquery-expression

補充知識:關于使用django orm 時的坑

跨app 時外鍵報錯

class Host(models.Model):
nid = models.AutoField(primary_key=True)
hostname = models.CharField(max_length=32, db_index=True)
ip = models.GenericIPAddressField(protocol=“ipv4”, db_index=True)
port = models.IntegerField()
# b = models.ForeignKey(to=“Business”, to_field=‘id')

class HostToApp(models.Model):
hobj = models.ForeignKey(to=‘Host', to_field=‘nid')
aobj = models.ForeignKey(to=‘Application', to_field=‘id')

class Application(models.Model):
name = models.CharField(max_length=32)

以上 model 都在一個models 文件下時不會報錯。 但是一旦出現跨app 時會報以下錯誤:

users.HostToApp.aobj: (fields.E300) Field defines a relation with model ‘Application', which is either not installed, or is abstract.
users.HostToApp.aobj: (fields.E307) The field users.HostToApp.aobj was declared with a lazy reference to ‘users.application', but app ‘users' doesn't provide model ‘application'.

解決方案:

1、

from xxxx.models import Application

2、

class HostToApp(models.Model):
hobj = models.ForeignKey(to=‘Host', to_field=‘nid')
aobj = models.ForeignKey(to=‘xxxx.Application', to_field=‘id')

第二步很重要

以上這篇使用 django orm 寫 exists 條件過濾實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python設置windows桌面壁紙的實現代碼

    python設置windows桌面壁紙的實現代碼

    每天換一個壁紙,每天好心情。喜歡的朋友可以參考下
    2013-01-01
  • pytorch模型部署 pth轉onnx的方法

    pytorch模型部署 pth轉onnx的方法

    這篇文章主要介紹了pytorch模型部署 pth轉onnx的相關知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Python實現微信小程序支付功能

    Python實現微信小程序支付功能

    這篇文章主要介紹了Python實現微信小程序支付功能 ,本文通過實例代碼,流程圖給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • pip 20.3 新版本發(fā)布!即將拋棄 Python 2.x(推薦)

    pip 20.3 新版本發(fā)布!即將拋棄 Python 2.x(推薦)

    這篇文章主要介紹了pip 20.3 新版本發(fā)布!即將拋棄 Python 2.x,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 基于Python實現給喜歡的主播自動發(fā)彈幕

    基于Python實現給喜歡的主播自動發(fā)彈幕

    這篇文章主要介紹了python如何實現給喜歡的主播自動發(fā)彈幕的功能,文中的示例代碼對我們學習Python有一定的幫助,感興趣的朋友可以了解下
    2021-12-12
  • keras 回調函數Callbacks 斷點ModelCheckpoint教程

    keras 回調函數Callbacks 斷點ModelCheckpoint教程

    這篇文章主要介紹了keras 回調函數Callbacks 斷點ModelCheckpoint教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python Gluon參數和模塊命名操作教程

    Python Gluon參數和模塊命名操作教程

    這篇文章主要介紹了Python Gluon參數和模塊命名操作,結合實例形式詳細分析了Python Gluon模塊功能及基本使用技巧,需要的朋友可以參考下
    2019-12-12
  • Python3實現連接SQLite數據庫的方法

    Python3實現連接SQLite數據庫的方法

    這篇文章主要介紹了Python3實現連接SQLite數據庫的方法,在Python數據庫編程中有著廣泛的應用,需要的朋友可以參考下
    2014-08-08
  • Python實現多子圖繪制系統(tǒng)的示例詳解

    Python實現多子圖繪制系統(tǒng)的示例詳解

    這篇文章主要介紹了如何利用python實現多子圖繪制系統(tǒng),文中的示例代碼講解詳細,具有一定的的參考價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-09-09
  • python交易記錄整合交易類詳解

    python交易記錄整合交易類詳解

    這篇文章主要介紹了python交易記錄整合交易類詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07

最新評論