谢谢。get_value_for_datastore这个函数我没看懂是什么意思。但我要取的是被secList中元素引用的FirstModel的 集合,或许应该是
set( [FirstModel.get_value_for_datastore(s.reference) for s in secList] ) On 10月23日, 上午12时13分, 风笑雪 <[email protected]> wrote: > The entities didn't define a cmp opreation, they'll compared by their > memory address. > > You can try: > set( [s.reference.key() for s in secList] ) > > or more efficient way: > set( [SecondModel.get_value_for_datastore(s) for s in secList] ) > > ---------- > keakon > > On Fri, Oct 22, 2010 at 4:00 PM,saintthor<[email protected]> wrote: > > class FirstModel(db.Model): > > prop = db.IntegerProperty() > > > class SecondModel(db.Model): > > reference = db.ReferenceProperty(FirstModel) > > > first1 = FirstModel(...).put() > > first2 = FirstModel(...).put() > > first3 = FirstModel(...).put() > > > fList = [first1,first2,first3] > > > sList = [] > > for i in range( 10 ): > > sList.append( SecondModel( reference = fList[i%3] ).put() ) > > > # now, i have 10 SecondModel references 3 FirstModel. > > > q = SecondModel.all() > > > secList = q.fetch( q.count() ) > > > FirstSet = set( [s.reference for s in secList] ) > > > print len( FirstSet ) > > > # now, len( FirstSet ) should be 3, but there is 10. > > > it regards same FirstModel referenced by different SecondModel as > > different. how to make it regards it same? > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google App Engine" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
