Django просмотров: postgres материализованный вид, доступный через get, но не через фильтр (оба набора запросов) - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь отфильтровать материализованные postgres просмотры в Django views.py. База данных и представления были созданы с помощью 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, я получу один объект (как и ожидалось).

1 Ответ

0 голосов
/ 31 марта 2020

Добавление __exact к id_objekt dokumente = ObjektDokumenteRel.objects.using('db').filter(id_objekt__exact=fid) решает проблему. Кто-нибудь знает, почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...