【问题标题】:Django views: postgres materialized view accessible via get but not via filter (both queryset)Django 视图:postgres 物化视图可通过 get 但不能通过过滤器访问(两个查询集)
【发布时间】:2020-07-11 17:16:49
【问题描述】:

我尝试在 Django views.py 中过滤具体化的 postgres 视图。数据库和视图是用 postgres 创建的。我可以过滤代表一对多关系的视图,并且可以使用 get (queryset) 访问代表多对多关系的视图。但我无法过滤那些代表多对多关系的视图。模型是用 inspectdb 创建的。这是一个 postgis 遗留数据库。

如何过滤这些视图?

models.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'

views.py

dokumente = ObjektDokumenteRel.objects.using('db').filter(id_objekt=fid)

如果用 get 替换过滤器,我会收到一个对象(如预期的那样)。

【问题讨论】:

    标签: django postgresql django-views geodjango materialized-views


    【解决方案1】:

    将 __exact 添加到 id_objekt dokumente = ObjektDokumenteRel.objects.using('db').filter(id_objekt__exact=fid) 可以解决问题。有人知道为什么吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-24
      • 2013-11-12
      • 2017-02-10
      • 1970-01-01
      • 2020-03-24
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      相关资源
      最近更新 更多