1

1 対多のモデル スキームがあります。すべて正しいように見えます。データの入力は機能しますが、次のようにlinkitem_set.fetch失敗します。

AttributeError: '_ReverseReferenceProperty' オブジェクトに属性 'fetch' がありません

同じエラーがありますが、解決策がない SO に関する質問も 1 つあります。以下の私のコード:

class Project(db.Model):
   name = db.StringProperty()

class LinkItem(db.Model):
   url = db.StringProperty()
   project = db.ReferenceProperty(Project)

class Show(webapp2.RequestHandler):
   def get(self):
      links = Project.linkitem_set.fetch(100)
      self.response.headers['Content-Type'] = 'text/plain'
      for li in links:
         self.response.out.write(li + '/r/n')

class PopulateDb(webapp2.RequestHandler):
   def get(self):
      prj = Project(name = 'SomeProject 1')
      prj.put()
      for i in range(1000):
         rlink = random.betavariate(1, 2)
         link = LinkItem(url = str(rlink), project = prj)
         link.put()

私は Python 2.7 を使用しており、このローカリティをテストしてホストしています。

4

1 に答える 1

1

問題は、コレクションがのインスタンスに対してlinkitem_setのみ存在することだと思いますが、クラス自体でそれを使用しようとしています。Project

コードは次のようになります。

class Show(webapp2.RequestHandler):
   def get(self):
      prj_name = "" # Get a valid value, probably from URL params
      prj_to_show = Project.all().filter("name=", prj_name).get()
      if prj_to_show is not None:
          links = prj_to_show.linkitem_set.fetch(100)
          self.response.headers['Content-Type'] = 'text/plain'
          for li in links:
              self.response.out.write(li + '/r/n')
于 2012-04-30T13:18:10.610 に答える