The only argument to your lambda is "row", so I assume you want row.slug.
Because "equipment" is not an argument of the lambda, it will look for it
in the outer scope. It looks like you must have a function named
"equipment", which is what is being referenced in the lambda.
Anthony
On Thursday, August 23, 2012 1:05:45 AM UTC-4, SeamusSeamus wrote:
>
> sorry, replace products with equipment. My bad. I renamed it since and am
> using equipment instead of 'products'. I have it set up now and it is
> taking me to the view, but I cannot get the sqlform.grid to show anything
> except row.id.
>
> On Wednesday, August 22, 2012 11:01:36 PM UTC-6, Anthony wrote:
>>
>> What is "equipment"?
>>
>> On Thursday, August 23, 2012 12:53:10 AM UTC-4, SeamusSeamus wrote:
>>>
>>> In my SQLForm.grid I added this
>>> links = [lambda row: A('Details',_href=URL('default','show',
>>> args=[equipment.slug]))]
>>> grid = SQLFORM.grid(query=query, links=links)
>>>
>>>
>>> I also added the is_slug into the model...but get this error..
>>>
>>> links = [lambda row: A('Details',_href=URL('equipment','show',
>>> args=equipment.slug))]
>>> AttributeError: 'function' object has no attribute 'slug'
>>>
>>>
>>>
>>> On Tuesday, August 21, 2012 3:49:55 PM UTC-6, rochacbruno wrote:
>>>>
>>>> You want to create a slug?
>>>>
>>>> web2py comes with IS_SLUG validator which helps with this.
>>>>
>>>> db.define_table("product",
>>>> Field("title", unique=True),
>>>> ...
>>>> ...
>>>> Field("slug", compute=lambda row: IS_SLUG()(row.title)[0]
>>>> )
>>>>
>>>> So now you can use slug field to build your urls.
>>>>
>>>> URL("product", "show", args=product.slug)
>>>>
>>>> in product/show/product-name
>>>>
>>>> def show():
>>>> try:
>>>> product = db.product[int(request.args(0))]
>>>> except:
>>>> product = db(db.product.slug ==
>>>> request.args(0)).select().first()
>>>> return product
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, Aug 21, 2012 at 6:18 PM, SeamusSeamus
>>>> <[email protected]>wrote:
>>>>
>>>>> I didnt mean to do {{ }}, but I mean domain.com/product/productname
>>>>> (Product name being the name of the variable in the field from the model)
>>>>>
>>>>>
>>>>>
>>>>> On Tuesday, August 21, 2012 2:43:35 PM UTC-6, Anthony wrote:
>>>>>>
>>>>>> What is {{fieldname title}}? How do you get that value?
>>>>>>
>>>>>> On Tuesday, August 21, 2012 4:31:54 PM UTC-4, SeamusSeamus wrote:
>>>>>>>
>>>>>>> Thanks, what about URLs so it is www.domain.com/product/{{**
>>>>>>> fieldname <http://www.domain.com/product/%7B%7Bfieldname> title}}
>>>>>>>
>>>>>>>
>>>>>>> On Tuesday, August 21, 2012 10:56:49 AM UTC-6, Anthony wrote:
>>>>>>>>
>>>>>>>> You can set response.title and response.meta in the controller or
>>>>>>>> function to make it specific to particular controllers or functions
>>>>>>>> (or you
>>>>>>>> can set them conditionally in a model file). If you need to use a
>>>>>>>> database
>>>>>>>> value, just do a query to get the value (your probably want to cache
>>>>>>>> it to
>>>>>>>> improve performance).
>>>>>>>>
>>>>>>>> Anthony
>>>>>>>>
>>>>>>>> On Tuesday, August 21, 2012 12:49:00 PM UTC-4, SeamusSeamus wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 1. What is the easiest way to make it so each page has it's own
>>>>>>>>> title? Currently it is set by layout.html, but what if I want its own
>>>>>>>>> page
>>>>>>>>> to have an independent title?
>>>>>>>>> 2. How can I make it so the <title> of the page is the "name" of a
>>>>>>>>> field in a model? I am using SQLForm now, and have /product/1 and
>>>>>>>>> would
>>>>>>>>> like to have /product/purple-desk
>>>>>>>>> 3. How can I make it so the meta description on each page has its
>>>>>>>>> own ? For example, the description is the data in the field 'product
>>>>>>>>> description' used in the model.
>>>>>>>>>
>>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> --
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
--