Ok I noticed partly where my error is:
row.title needs to be row.id.
I have used "represent" before and attempted it again here. However it is
being completely ignored. Specifically what I tried is not working and I
have used this many times before without problem. The only difference
using it before was that the field was changed to be unwritable.
Currently I tried to get represent to work in the same way I have used
before:
formcontrol.category.represent = lambda f: db.category[f].title
This is being completely ignored.
Any ideas?
On Monday, January 19, 2015 at 5:22:59 PM UTC-6, americandewd wrote:
>
> I have a dropdown list of categories I have created for users to select
> from, when I remove formcontrol.category.requires =
> IS_IN_SET(catwanted,zero=None) it shows the existing data the user has
> already chosen, when I put back the formcontrol.category.requires =
> IS_IN_SET(catwanted,zero=None) it does not show the data existing in the
> field. The existing data was chosen from initial creation of the data in
> the same manner however if the user wants to go back and change this it is
> not showing what they had existing, instead the dropdown select has the
> first sorted item of the list as though they never had any data there (yet
> this record exists).
>
> I tried several things mentioned here and in the book, none of them showed
> the existing data. The only thing that would show it is if I took out the
> "IS_IN_SET" with my list created from the actual category list in the DB.
>
> In my model I am creating a category list (Massimo helped with this awhile
> back):
>
> db.define_table('category',
> Field('title'),
> Field('slug',requires=IS_SLUG(),compute=lambda row: IS_SLUG.urlify(row
> .title)),
> Field('parent_id','reference category', default=None))
>
>
>
> In that list I have main categories that I do not want before I make a
> call to edit the form like so:
> catwanted = []
> notwanted = ['Dontwant1','Dontwant2','Dontwant3']
> for row in db(db.category).select():
> if row.title in notwanted:
> pass
> else:
> catwanted.append(row.title)
> catwanted.sort()
>
> When I call the form I put that list as a requirement:
> formcontrol.category.requires = IS_IN_SET(catwanted,zero=None)
>
> The list shows up fine, the problem is that it does not show the existing
> data for that field, it shows the first sorted item.
>
> When I remove the
> formcontrol.category.requires = IS_IN_SET(catwanted,zero=None)
> from the call it shows me the existing data in the field, however at this
> point I am not obviously removing the categories from the available options.
>
> Since the only way I can get it to show the existing value is by removing
> "formcontrol.category.requires = IS_IN_SET(catwanted,zero=None)" I am
> posting here to see if maybe this is just a weird bug because the data that
> exists in the field is not in the excluded list and I have other parts in
> which I do this except the only difference is that I do not exclude
> anything and it shows the existing value in the field. This does not seem
> right to me for it to not want to show existing data that matches the data
> in the wanted list of items.
>
--
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/d/optout.