【问题标题】:Convert SQL query to Django friendly format for application将 SQL 查询转换为 Django 友好格式以供应用程序使用
【发布时间】:2010-02-25 20:21:25
【问题描述】:

我有一个 SQL 查询,它在我的基于 Django 的 web 应用程序的 Postgres 数据库上运行。该查询针对 Django-Notifications(可重用应用程序)存储的数据运行,并返回未选择退出特定通知类型的电子邮件地址列表。

我真正想做的是构建一个按需执行此操作的应用程序,因此我正在寻找一个如何转换 SQL 以便它可以在 Django 视图中运行的示例,该视图将传递出去格式化的电子邮件列表。 SQL 目前是这样的:

gr_webapp=# select email from emailconfirmation_emailaddress where verified and user_id not in
(select user_id from notification_noticesetting s join notification_noticetype t on s.notice_type_id = t.id
where t.label = 'announcement' and not s.send);

【问题讨论】:

    标签: python sql django django-models


    【解决方案1】:

    您可能需要对型号名称进行适当的调整,因为您没有在问题中显示它们:

    users_to_exclude = Noticesetting.objects.filter(send=False, notice_type__label='announcement').values('user')
    emails = Emailaddress.objects.exclude(user__in=users_to_exclude)
    

    【讨论】:

    • 我尝试了您的示例的变体,但它给出了“错误绑定参数 0 - 可能不受支持的类型。” users_to_exlude = NoticeSetting.objects.filter(notice_type='announcement').values('user') emails = EmailAddress.objects.exclude(user=users_to_exlude) 打印电子邮件
    • 啊我明白了:我做错了 - 正如你所说:users_to_exlude = NoticeSetting.objects.filter(notice_type='announcement').values('user') emails = EmailAddress.objects.exclude (user__in=users_to_exlude)
    猜你喜欢
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多