Now sure I fully understand the pproblem but your first controller/
view should probably be:
# controller
def index():
rows = db(db.domains.created_by==auth.user_id).select()
return dict(rows=rows)
# view
{{extend 'layout.html'}}
<h1>Manage your domain names</h1>
<ul>{{for row in rows:}}
{{=LI(A(row.title, _href=URL('domain_show', args=row.id)))}}
{{pass}}</ul>
[ {{=A('create domain', _href=URL('domain_add'))}} ]
So add search add your own form = SQLFORM.factory(Field('key')) and
use the value to do db.domains.title.like(form.vars.key)
On Oct 23, 2:23 am, Jimmy Stewpot <[email protected]> wrote:
> Hello,
>
> I am new to web2py. I just started a new app to become more familiar
> with the technology. So far I have the following.
>
> # controller
> def index():
> form, rows = crud.select(db.domains,
> query=(db.domains.created_by==auth.user_id))
> return dict(rows=rows)
>
> # view
> {{extend 'layout.html'}}
> <h1>Manage your domain names</h1>
> [ {{=A('search', _href=URL('search'))}} ]<br />
> {{response.write(rows)}}
> <ul>{{for name in rows:}}
> {{=LI(A(name[1], _href=URL('domain_show', args=name[4])))}}
> {{pass}}</ul>
> [ {{=A('create domain', _href=URL('domain_add'))}} ]
>
> The problem is that it dynamically generates the args=name[4] as <td>
> name[4] </td>. in the browser.
>
> I've been so far unable to find any tidy was so that I can only show
> the domains for the particular user and pass those variables around to
> show, edit, delete etc.
>
> As an example here is what I have in my domain_show controller
>
> @auth.requires_login()
> def domain_show():
> "shows a domain name"
> domain_name = db.domains(request.args(0),created_by=auth.user_id)
> or redirect(URL('index'))
> db.domains.id.default = domain_name.id
> form = crud.create(db.domains) if auth.user else None
> return dict(domain_name=domain_name, form=form)
>
> and the view
>
> {{extend 'layout.html'}}
> <h1>{{=domain_name.name}}</h1>
> {{=form}}
>
> I would love to know if there is a better way to do this stuff. Any
> advice would be really appreciated.
>
> Regards,
>
> Jimmy.