Thursday, June 14, 2012

Re: How can i transmit an objects in list?

You are probably getting this error because when you generate your list from categories. you are adding sub categories as list. so your list will be like following

[cat1,cat2,cat3,[subcat1,subcat2],[subcat3,subcat4]]

I think you want to use

list.extend(BuildList(category.childrens.all()))
so you will have a one flat list.


list.append(category) repeated twice itlookslike to me that you don't actualy need an if statement here.

def BuildList(categories):
    list = []
    for category in categories:
            list.append(category)
            list.extend(BuildList(category.childrens.all()))
    return list

this method would run same queries.
,

You have a for template tag in django . You can use it instead of your custom filter.


this is great for categories. this is good for keeping trees in relational databases. when you query sub trees, it will do exactly one query every time.
and there is a generic category app too if you need.


I hope that helps.







On Thursday, June 14, 2012 9:44:50 AM UTC+3, Dominis wrote:
Hello.
I need a bit help with my code.
I write a function for menu building, which should create a list of objects, for designing it in html code.
Code of function below:
def BuildList(categories):
    list = []
    for category in categories:
        if len(category.childrens.all()):
            list.append(category)
            list.append(BuildList(category.childrens.all()))
        else :
            list.append(category)
    return list
 
I call this function for a list of categories, like this:
list = BuildList(Categories.objects.filter(parent = None))
My function work right, but in list i get not an objects, my values have only name of a categories. I thought it happens couse in my Category model in __unicode__  function i place a 'return self.name', and when i call my categories in function - it return just name. :(
What i should do for get full objects in my list? With full collection of parameters.
I suppose this question is easy, but i just start to learn python and django.
Thx for you time and answers.

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

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate