私は2つのモデルを持っています:
class Person(db.Model):
name = db.StringProperty()
role = db.StringProperty(default = "", choices = ["Engineering", "Marketing", "Care", "Sales"])
class Item(db.Model):
user_name = db.ReferenceProperty(Person)
computer_type = db.StringProperty(default = "", choices = ['Dell Latitude E6500', 'Dell Latitude E5510', 'Dell Latitude E5500' ])
hostname = db.StringProperty()
serial = db.StringProperty()
Person モデルの Name を Item Model の user_name として使用して保存し、Web ページに表示したいと思います。
私の取得は次のようになります。
class ItemPage(webapp.RequestHandler):
def get(self):
query_comp = db.GqlQuery("SELECT * FROM Item ORDER BY user_name")
template_values = {
'query_comp': query_comp
}
path = os.path.join(os.path.dirname(__file__), 'table.html')
self.response.out.write(template.render(path, template_values))
そして、table.html は次のようになります。
{% for item in query_comp %}
<tr style='white-space: nowrap; overflow: hidden; text-overflow:ellipsis;'>
<td>{{ item.fname }}</td>
<td>{{ item.computer_type }}</td>
<td>{{ item.hostname }}</td>
<td>{{ item.serial }}</td>
</tr>
{% endfor %}
私が得るエラーは AttributeError: 'unicode' object has no attribute 'has_key' です
私の問題は、Person モデルの名前オブジェクトを正しく参照していないことだと確信しています。現在、キー オブジェクトだけを Item モデルに返しています。ドキュメントを調べてみましたが、調査した限り、Gql クエリの使用に関するものは何もありません。クエリにオブジェクトを渡す必要があると思いますItem.person.name
が、少し迷っています。いくつかのガイダンスを探しています、ありがとう。