Thanks for your reply..

Each Acesso have a sector which is Unique. Acesso`s _unicode is
SECTOR.
When I set for the first time values for this rule(Acesso), the
dictionary come without values for genres.

Example:
Acesso is empty now.
Enter in Admin/Acesso

and set values:

Sector = 'Development'
Forbidden = 'Porn', 'Sports'
Free = 'News'

and save.

The dictionary should returns:
dic = {'Development': {'forbidden':['Porn', 'Sports'], 'free':
['News']}}

but return:
dic = {'Development': {'forbidden':[], 'free':[]}}

and return empty values for each new save.

I'm using postgresql.


On Aug 1, 2:54 pm, bruno desthuilliers <bruno.desthuilli...@gmail.com>
wrote:
> On 1 août, 17:16, eduardoorige <eduardo.or...@gmail.com> wrote:
>
> > Good morning people.
> > I made ​​a signal that plays m2m table values ​​to a dictionary.
> > For example:
>
> > dic = {'SECTOR': {'forbidden': [Genres ,...], 'released':
> > [Genres ,...]}}
>
> > There is a table of company sectors, each of these sectors has
> > access rules prohibited and released. The genres are content that
> > staff can not access, for example pornography, sports,
> > etc ...
>
> > When this rule except for the FIRST TIME, I get the SECTORS but
> > Gender is empty.
> > dic = {'FINANCIAL: {' forbidden ': [],' released ': []}}
>
> What do you mean by "the first time" ?
>
> > Here's the function that fulfills this dictionary:
>
> > def dic_acesso():
> >         regra = Acesso.objects.filter(status=True)
> >         dic_acesso = {}
> >         for ind in regra:
> >                 ind_s = str(ind)
>
> I assume your Acesso model has some field like "name" or "label" or
> whatnot. Using this attribute might help wrt/ readabily, robustness
> *and* performances.
>
> >                 dic_acesso[ind_s] = {}
> >                 lista_genero_proibido = []
> >                 lista_genero_liberado = []
> >                 for gp in ind.proibido.all():
> >                         lista_genero_proibido.append(str(gp))
> >                 for gl in ind.liberado.all():
> >                         lista_genero_liberado.append(str(gl))
>
> Same remark as above, and this time you could save a *lot* of overhead
> using Queryset.values_list - you could get the full list in one single
> call and avoid uselessly building full model instances.
>
> Assuming the field used for Acesso.__unicode is named "sector" and the
> field used by Genero.__unicode__ is named 'label', the whole function
> would look like this:
>
> def get_dic_acesso():
>     regra = Acesso.objects.filter(status=True)
>     dic_acesso = {}
>     for ind in regra:
>         dic_acesso[ind.name] = {
>             "proibido": ind.proibido.values_list('label', flat=True),
>             "liberado": ind.liberado.values_list('label', flat=True)
>              }
>     return dic_acesso
>
> Now this obviously won't solve your problem, but since your function
> should work as it is (at least I didn't spot any logic error), I think
> the problem is elsewhere, and probably depends on what you mean by
> "the first time" (or when and where this "first time" append, etc).
> Just a hint: if you're using MySQL, the default isolation level can
> lead to rather suprinsing behaviours...
>
> My 2 cents...

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to