Getting:

global name 'active_page' is not defined

What did you have for that so I can incorporate it? Or do I even need that 
since I'm not really caring at the moment about which page they're on (if I 
understand that variable correctly).  How would I remove it to still 
achieve the same effect?  Thanks



On Tuesday, January 21, 2014 12:29:04 PM UTC-6, James Burke wrote:
>
> Sorry, I had the parent declared as catelog_parent in the table. If you 
> change it to parent it should work ;)
>
> Also += is the same as append.
>
> On Wednesday, January 22, 2014 3:35:29 AM UTC+13, web2pygroup wrote:
>>
>> I attempted to copy/paste what you have so I can modify it for my needs.  
>> However it immediately errors out with:
>>
>> AttributeError: 'Table' object has no attribute 'parent'
>>
>> So I thought I would comment out everything for the menu except 
>> response.menu = [] and populate the database (have done this before and the 
>> site comes up just no menu as expected).
>>
>> I then decided to try and populate the database fields.
>>
>> However when I try to populate it I immediately get an error 
>> "IntegrityError: FOREIGN KEY constraint failed". What I did was, put 
>> "Animals" for the title, for description I put "Main Animals Category", 
>> then for the parent catelog I put "Animals" again.  Upon seeing this I'm 
>> confused as to how a subcategory would get identified.  So I also tried 
>> just putting "Animals" for the title, and filling in the description as 
>> above, but leaving the parent catelog blank, it to also failed with exactly 
>> the same error "IntegrityError: FOREIGN KEY constraint failed".  So 
>> effectively I'm unable to even put anything in the fields, an issue I never 
>> had so I'm unsure what the problem is.
>>
>> Would it be possible to use the fields I have already established to 
>> populate the menu?  Since you have 3 fields identified in your table albeit 
>> with slight differences, would it be possible to somehow incorporate that 
>> into what I have?  Could you also explain why you used "+=" instead of 
>> append?  Maybe I could figure out something from that.
>>
>> Thanks
>>
>> On Tuesday, January 21, 2014 12:11:59 AM UTC-6, James Burke wrote:
>>>
>>> Hi,
>>>
>>> I managed to get one working a little while ago doing this. This has 
>>> been adapted for your situation, may require some tweaking:
>>>
>>> _tables.py - model
>>> db.define_table('store_catelog')
>>>
>>>
>>> db.define_table('store_catelog',
>>>     Field('title', 'string'),
>>>     Field('description', 'text'),
>>>     Field('parent_catelog', 'reference store_catelog', default=None),
>>>     format='%(title)s',
>>>     redefine=True)
>>>
>>> menu.py - model
>>> response.menu = []
>>>
>>> categories = db(db.store_catelog.parent == None).select(orderby=db.
>>> store_catelog.id)
>>>
>>> for category in categories:    
>>>     response.menu+=[ (T(category.title), True if active_page == str(
>>> category.title.lower()) else False, URL('default','page/%s' % (category.
>>> title.lower())), [
>>>         (T(i.title), True if active_page == str(i.id) else False, URL(
>>> 'default','page/%s' % (i.id)), []) for i in db((db.stored_category.parent 
>>> == category.id)).select(db.store_category.ALL) if i.parent == category.
>>> id
>>>                     ]) ]
>>>
>>> The query returns any categories without a parent and adds them to the 
>>> menu. While doing so looks for any subcategories using the category as a 
>>> parent.
>>>
>>> Hope that helps you out.
>>>
>>> -James
>>>
>>> On Tuesday, January 21, 2014 9:33:50 AM UTC+13, [email protected]:
>>>>
>>>>
>>>> Hi all,
>>>>
>>>> I have been trying for a little over 2 weeks to figure this out...
>>>>
>>>> I'm trying to generate a menu that drops down, I have been able to 
>>>> statically create it by overwriting sample app that has the same drop down 
>>>> menu like the web2py.com site.
>>>>
>>>> I have this in my db.py:
>>>> db.define_table('store_catalog',
>>>>     Field('maincategory', 'string'),
>>>>     Field('subcategory', 'string'),
>>>>     Field('description', 'text'))
>>>>
>>>>
>>>> in my menu.py I have gotten this so far:
>>>> response.menu=[]
>>>> response.menu.append([T('Catalog'), False, '',
>>>>                [(T('%s' % menucatchoice['maincategory']), False, 'link',
>>>>                     [(T('%s' % menucatchoice['subcategory']), False, 
>>>> 'link'),]) for menucatchoice in rows ] ])
>>>>
>>>> It gets me a drop down menu except that for each subcategory it repeats 
>>>> adding it to the main category. Let's say there is only 1 main category 
>>>> and 
>>>> 2 subs that go after that
>>>> Catalog (this just shows with the caret next to it as intended)
>>>> MainCategory
>>>>     Sub
>>>>     Sub
>>>> What I have does put the "Catalog" for the first but, what I get is:
>>>> MainCategory
>>>>     (blank)
>>>> MainCategory(don't want this it's being repeated)
>>>>    Subcategory
>>>> MainCategory(and this one is also a repeat)
>>>>    Subcategory
>>>>
>>>> I have tried to break out the response.menu with so many different 
>>>> .appends it's not funny.  I have also tried adding the "[-1]".  This was 
>>>> the closest I have gotten to what I want it to look like.  I'm at an 
>>>> absolute loss on this, any and all help would be greatly appreciated.
>>>>
>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to