django - Django 视图:postgres 物化视图可通过 get 但不能通过过滤器访问(两个查询集)
问题描述
我尝试在 Django views.py 中过滤具体化的 postgres 视图。数据库和视图是用 postgres 创建的。我可以过滤代表一对多关系的视图,并且可以使用 get (queryset) 访问代表多对多关系的视图。但我无法过滤那些代表多对多关系的视图。模型是用 inspectdb 创建的。这是一个 postgis 遗留数据库。
我如何过滤这些视图?
模型.py
fid = models.AutoField(primary_key=True)
id_dokument = models.IntegerField(blank=True, null=True)
dokument = models.CharField(max_length=50, blank=True, null=True)
datei = models.CharField(max_length=100, blank=True, null=True)
beschreibung = models.CharField(max_length=1024, blank=True, null=True)
datum = models.DateField(blank=True, null=True)
person = models.CharField(max_length=50, blank=True, null=True)
dokumenttyp = models.CharField(max_length=30, blank=True, null=True)
id_objekt = models.IntegerField(blank=True, null=True)
objekt = models.CharField(max_length=50, blank=True, null=True)
class Meta:
managed = False # Created from a view. Don't remove.
db_table = 'objekt_dokumente_rel'
视图.py
dokumente = ObjektDokumenteRel.objects.using('db').filter(id_objekt=fid)
如果用 get 替换过滤器,我会收到一个对象(如预期的那样)。
解决方案
将 __exact 添加到 id_objektdokumente = ObjektDokumenteRel.objects.using('db').filter(id_objekt__exact=fid)
可以解决问题。有谁知道为什么?
推荐阅读
- javascript - Phaser 3:按比例缩小时图像像素化
- database - 具有大量插入和删除的繁忙表上的优化器统计信息
- ios - SwiftUI 中的网格视图
- laravel - 如何访问模型 hasMany 与灯塔 graphql 中的 where 条件的关系?
- reactjs - React Native 版本 0.62.2 中的切换导航器
- node.js - 如何解决nodejs中的setHeader问题
- java - 在(c)和(d)中放入什么(当我没有在这个问题中编码时,我仍然得到输出)
- javascript - Jest 的匹配器错误:接收到的值必须是函数
- javascript - 使用 Redux-Saga 而不是在反应组件中编写异步函数有什么好处?
- gluu - 是否可以将 gluu 中的 ldap 数据与 rdbms 同步?