这是我的Model
:
db.define_table('person',
Field('name'),
format='%(name)s')
db.define_table('thing',
Field('name'),
Field('owner_id', 'reference person'),
format='%(name)s')
这是Controller
:
def ref():
rows = db(db.person.id==db.thing.owner_id).select()
return locals()
这是View
:
{{for row in rows:}}
<h1>{{=row.person.name}}</h1><h3>{{=row.thing.name}}</h3>
{{pass}}
我可以在这里使用join
并循环遍历所有人并获取他们的东西。
我的问题是:我如何随机选择一个人并仅获取该人的东西?
我已经尝试了几种不同的方法来实现这一点,但我显然遗漏了一些东西。我希望得到一些指导。
答案 0 :(得分:1)
这可能不太漂亮,但请尝试:
def function():
from random import randint
persons = db(db.person.id > 0).count()
rand = randint(1, persons)
the_person = db.person(rand)
persons_things = db(db.thing.owner_id == rand).select()
for thing in persons_things:
print thing
return dict(the_person=person, persons_things=things)
观点:
<h1>{{=person.name}}´s Things:</h1>
<p>
{{=for thing in things:}}
{{=thing.name}}
{{pass}}
</br>
</p>