Django ORM类似于Pony ORM中的select query



我现在是小马ORM我已经创建了我的DB模型,像这样:

class RSSSource(db.Entity):
title = Required(str, max_len=100)
link = Required(str, max_len=800)
key = Required(str, max_len=200)
description = Required(str, max_len=800)
is_deleted = Optional(bool, sql_default=False)
rss_content = Set('RSS', reverse='source')
subscriptions = Set("Subscription", reverse='source')
def __str__(self):
return self.title
class RSS(db.Entity):
title = Optional(str, max_len=300)
link = Optional(str, max_len=500)
description = Required(str, max_len=500)
source = Optional("RSSSource", reverse="rss_content")
pub_date = Optional(datetime)
is_deleted = Optional(datetime, sql_default=False)
likes = Set("Like", reverse="rss")
def __str__(self):
return self.title
class User(db.Entity):
first_name = Optional(str, max_len=100)
last_name = Optional(str, max_len=100)
username = Required(str, max_len=200, unique=True)
password = Required(str, max_len=500)
is_deleted = Optional(bool, sql_default=False)
subscriptions = Set("Subscription", reverse="user")
likes = Set("Like", reverse="user")
def __str__(self):
return self.username
class Subscription(db.Entity):
source = Optional("RSSSource", reverse="subscriptions")
user = Optional("User", reverse="subscriptions")
is_deleted = Optional(bool, sql_default=False)

现在我想执行一个类似Django orm的选择查询。像这样:

select user.id
from Subscription where source.key = $key and (is_deleted is null or is_deleted = FALSE)

我找不到做这件事的方法。有人能帮忙吗?

我终于想出了这样的东西,它起作用了。

select user
from Subscription as s
left join RSSSource as rs on rs.id = s.source
where rs.key = $key and (s.is_deleted is null or s.is_deleted = FALSE)

最新更新