I think you want to replace

        form=crud.create(db.project_location)

with

        location =
db(db.project_location.project==project_id).select().first()
        form=crud.update(db.project_location,location)

if location is None, crud.update defaults to crud.create

On May 19, 8:57 am, greenpoise <[email protected]> wrote:
> Hi there. I am a bit stuck here. ANy help greatly appreciated. I have
> this:
>
> @auth.requires_login()
> def crear_project_location():
>     project_id=request.args(0)
>     project=db.project[project_id]
>
>     if project:
>         db.project_location.project.default=project_id
>         db.project_location.project.writable=False
>         form=crud.create(db.project_location)
>
> projects=db(db.project_location.project==project.id).select(orderby=db.project_location.project)
>
>     else:
>         form=None
>
> projects=db(db.project_location.id>0).select(orderby=db.project_location.name)
>     return dict(project=project,projects=projects,form=form)
>
> It works perfect BUT it will always get me to a blank editable form
> due to the crud.create. I tried putting a crud.read. I want the user
> to click on the link and if there is already a project _location for a
> project then just display it (crud.read), if the project has no
> location associated, then it will give me crud.write. I know it must
> be simple but I cant figure it out.
>
> THanks

Reply via email to