1

我有两个模型:

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 来存储它们,并将它们显示在网页上。

我的 get 看起来像这样:

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 模型中的 name 对象,我目前只将 key 对象返回给 Item 模型,这就是我要打破的地方。我已经尝试过查看文档,但据我研究,它们与使用 Gql 查询无关。我想我必须将一个Item.person.name对象传递给查询,但我有点迷茫。求指导,谢谢。

4

0 回答 0