Google App Engine で Django-nonrel を使用しており、次のモデルがあります (簡略化されています)。
class Author(models.Model):
name = models.CharField()
class Book(models.Model):
author = models.ForeignKey(Author)
title = models.CharField()
したがって、このようにクエリすると、
books = Book.objects.all()
ブックをテンプレートに渡し、以下のように表示します。
<ul>
{% for book in books %}
<li>{{ book.title }}{{ book.author.name }}</li>
{% endfor %}
</ul>
book.author.name が原因で、AppStats に多数の datastore.get が表示されます。書籍を照会するときは select_related() を使用する必要があると考えていましたが、Google App Engine には JOIN がないため、明らかに django nonrel はサポートされていません。
この種のシナリオに対処する方法を誰か教えてもらえますか? モデルの非正規化を検討する必要がありますか? 操作方法を教えていただけると助かります。
ありがとう、ユウ