Какова лучшая практика для фильтрации на основе свойства внешнего ключа в нереляционной базе данных?Я понимаю, что отсутствие поддержки join
усложняет ситуацию, и поэтому мне было интересно, как другие обошли это.
В моем случае у меня есть события, которые принадлежат сайтам, которые принадлежат регионам.Я хочу отфильтровать все события в данном регионе.Event
имеет свойство site
, которое является внешним ключом для Site
, которое, в свою очередь, имеет region
внешний ключ для Region
:
region = Region.objects.get(id=regionID)
events = Event.objects.filter(site__region=region)
Это неработать, потому что site__region требует join
, и это не поддерживается на django-nonrel, работающем в Google App Engine.(Я получаю Caught DatabaseError while rendering: This query is not supported by the database.
как ошибку.) Таким образом, я перебираю события, добавляя те, которые соответствуют списку:
events = list()
region = Region.objects.get(id=regionID)
for event in Event.object.all():
if event.site.region==region:
events.append(event)
Это хороший способ делать что-то?Есть что-то глупое, что я упустил из виду?Заранее спасибо!