django - 使用 ReverseManager 排除 Django 过滤器
问题描述
我有一个模型Tenant
和一个模型,该模型SocialMediaContextTenant
具有该模型的外键Tenant
。
class SocialMediaContextTenant(AbstractSocialMediaContext):
tenant = models.ForeignKey('campaigns.Tenant')
secret = models.CharField(...)
我想过滤所有已连接SocialMediaContextTenant
已设置secret
字段的租户。
到目前为止,我有这个查询
Tenant.objects
.exclude(socialmediacontexttenant__secret='')
.values_list('id', flat=True)
但是排除过滤器似乎不起作用,因为我仍然得到一个空secret
字段的结果
解决方案
看起来secret
字段具有空值,而不是空字符串。要排除这些记录,请使用__isnull
查找:
Tenant.objects.exclude(socialmediacontexttenant__secret='').exclude(socialmediacontexttenant__secret__isnull=True)
推荐阅读
- asp.net - PSEXEC 在远程服务器上启动计算器仅在调试 vb.net 时有效
- bash - 从文件中选择列并保存输出
- stored-procedures - informix 12.10 使用单个文件创建多个存储过程
- sql - SQL 复制/负载管理的最佳实践
- reactjs - 无法在 redux saga 的 yield 调用中使用 fetch
- javascript - 从提供的 JSON 数据中检索特定数据
- gradle - 未找到 Grails CXF 插件
- c# - 在 wpf 项目中单点管理和加载我的自定义字体
- google-bigquery - BigQuery 中 ARRAY_AGG(foo where bar) 的等价物是什么?
- json - swift如何在数组中添加字典键值