Thanks will look at that, what I found out is if I remove foreign keys 
fields from admin list display:

 list_display = ('client', 'category', 'subcategory', 'project', 'title', )

to 

 list_display = ('title', )

its working super fast and all works.

But I want to work it out with some FK keys in the admin...

thanks for advice

On Monday, 24 September 2012 20:00:30 UTC-4, Lachlan Musicman wrote:
>
> I'm not an expert on this matter, but I did read about list_select 
> related recently: 
>
> /path/django-docs-1.4-en/ref/contrib/admin/index.html#django.contrib.admin.ModelAdmin.list_select_related
>  
>
>
> which links to select related: 
>
> django-docs-1.4-en/ref/models/querysets.html#django.db.models.query.QuerySet.select_related
>  
>
>
> which talks about using the depth keyword to minimise the level the db 
> goes to: 
>
> "Usually, using select_related() can vastly improve performance 
> because your app can avoid many database calls. However, in situations 
> with deeply nested sets of relationships select_related() can 
> sometimes end up following "too many" relations, and can generate 
> queries so large that they end up being slow. 
>
> In these situations, you can use the depth argument to 
> select_related() to control how many "levels" of relations 
> select_related() will actually follow" 
>
> Hope this helps! 
>
> cheers 
> L. 
>
>
> On Tue, Sep 25, 2012 at 11:29 AM, rentgeeen <rent...@gmail.com<javascript:>> 
> wrote: 
> > Also just found out when I remove Foreign Keys from admin.py from 
> > "list_display", it works blazing fast: 
> > 
> > 
> > class ClientAdmin(admin.ModelAdmin): 
> > 
> >    list_display = ('title',) 
> > 
> > admin.site.register(Client, ClientAdmin) 
> > class CategoryAdmin(admin.ModelAdmin): 
> > 
> >    list_display = ('client', 'title',) 
> > 
> > admin.site.register(Category, CategoryAdmin) 
> > class SubcategoryAdmin(admin.ModelAdmin): 
> > 
> >    list_display = ('client', 'category', 'title', ) 
> > 
> > admin.site.register(Subcategory, SubcategoryAdmin) 
> > class ProjectAdmin(admin.ModelAdmin): 
> > 
> >    list_display = ('client', 'category', 'subcategory', 'title', ) 
> > 
> > admin.site.register(Project, ProjectAdmin) 
> > class TypeAdmin(admin.ModelAdmin): 
> > 
> >    list_display = ('client', 'title', ) 
> > 
> > admin.site.register(Type, TypeAdmin) 
> > class PageAdmin(admin.ModelAdmin): 
> >   list_display = ('client', ) 
> > 
> > admin.site.register(Page, PageAdmin) 
> > 
> > FOREIGN KEYS cannot be in list_display? How to optimize them? 
> > 
> > On Monday, 24 September 2012 19:17:45 UTC-4, rentgeeen wrote: 
> >> 
> >> Have a SQL problem, adding this model all works correctly, the problem 
> is 
> >> in ADMIN. 
> >> 
> >> When I add the data just few to each table, by clicking on TYPE & PAGE 
> in 
> >> ADMIN the page is loading so slow, installed debug_toolbar and SQL took 
> 17 
> >> seconds for the TYPE. When I tried the PAGE it gave me timeout, my 
> question 
> >> is what is wrong with my model? Is it constructed bad? 
> >> 
> >> My goal is this lets say example: 
> >> 
> >> www.example.com/audi/4doors/s4/sport/red/audi-url 
> >> 
> >> basically all 6 urls are dynamic that I would specify in the each table 
> >> and would be in the PAGE as dropdowns also in others. What is the 
> optimal 
> >> way to do that or optimize the model? 
> >> 
> >> Here is a screenshot of TYPE page loading: 
> >> 
> >> screenshot: http://cl.ly/image/2931040E0t35 
> >> 
> >> Records: 
> >> 
> >> auto_client = 3 rows 
> >> 
> >> auto_category = 2 rows 
> >> 
> >> auto_subcategory = 2 rows 
> >> 
> >> auto_project = 5 rows 
> >> 
> >> auto_type = 2 rows 
> >> 
> >> auto_page = 0 - because cliking on auto_page it times out because of 
> SQL 
> >> query. Basically togehter like 14 records thats nothing :) 
> >> 
> >> here is also mysql query in PHPmyadmin: cl.ly/image/2S320h3d0P0J 17 
> >> seconds 
> >> 
> >> Please help thanks 
> >> 
> >> 
> >> from django.db import models 
> >> 
> >> 
> >> class Client(models.Model): 
> >>     title = models.CharField(max_length=100, unique=True) 
> >>     def __unicode__(self): 
> >>         return self.title 
> >> 
> >> class Category(models.Model): 
> >>     client = models.ForeignKey(Client, to_field='title') 
> >>     title = models.CharField(max_length=200, unique=True) 
> >>     def __unicode__(self): 
> >>         return self.title 
> >> 
> >> class Subcategory(models.Model): 
> >>     client = models.ForeignKey(Client, to_field='title') 
> >>     category = models.ForeignKey(Category, to_field='title') 
> >>     title = models.CharField(max_length=200, unique=True) 
> >>     def __unicode__(self): 
> >>         return self.title 
> >> 
> >> class Project(models.Model): 
> >>     client = models.ForeignKey(Client, to_field='title') 
> >>     category = models.ForeignKey(Category, to_field='title') 
> >>     subcategory = models.ForeignKey(Subcategory, to_field='title') 
> >>     title = models.CharField(max_length=200, unique=True) 
> >>     def __unicode__(self): 
> >>         return self.title 
> >> 
> >> class Type(models.Model): 
> >>     client = models.ForeignKey(Client, to_field='title') 
> >>     category = models.ForeignKey(Category, to_field='title') 
> >>     subcategory = models.ForeignKey(Subcategory, to_field='title') 
> >>     project = models.ForeignKey(Project, to_field='title') 
> >>     title = models.CharField(max_length=200, unique=True) 
> >>     def __unicode__(self): 
> >>         return self.title 
> >> 
> >> class Page(models.Model): 
> >>     client = models.ForeignKey(Client, to_field='title') 
> >>     category = models.ForeignKey(Category, to_field='title') 
> >>     subcategory = models.ForeignKey(Subcategory, to_field='title') 
> >>     project = models.ForeignKey(Project, to_field='title') 
> >>     type = models.ForeignKey(Type, to_field='title') 
> >>     pageurl = models.CharField(max_length=200) 
> >> 
> >> By cliking on TYPE this is the SQL output that takes 17 secs, cant 
> click 
> >> on last PAGE because thats so long - timed out: 
> >> 
> >> SELECT `auto_type`.`id`, `auto_type`.`client_id`, 
> >> `auto_type`.`category_id`, `auto_type`.`subcategory_id`, 
> >> `auto_type`.`project_id`, `auto_type`.`title`, `auto_client`.`id`, 
> >> `auto_client`.`title`, `auto_category`.`id`, 
> `auto_category`.`client_id`, 
> >> `auto_category`.`title`, T4.`id`, T4.`title`, `auto_subcategory`.`id`, 
> >> `auto_subcategory`.`client_id`, `auto_subcategory`.`category_id`, 
> >> `auto_subcategory`.`title`, T6.`id`, T6.`title`, T7.`id`, 
> T7.`client_id`, 
> >> T7.`title`, T8.`id`, T8.`title`, `auto_project`.`id`, 
> >> `auto_project`.`client_id`, `auto_project`.`category_id`, 
> >> `auto_project`.`subcategory_id`, `auto_project`.`title`, T10.`id`, 
> >> T10.`title`, T11.`id`, T11.`client_id`, T11.`title`, T12.`id`, 
> >> T12.`title`, T13.`id`, T13.`client_id`, T13.`category_id`, T13.`title`, 
> >> T14.`id`, T14.`title`, T15.`id`, T15.`client_id`, T15.`title`, 
> T16.`id`, 
> >> T16.`title` FROM `auto_type` INNER JOIN `auto_client` ON 
> >> (`auto_type`.`client_id` = `auto_client`.`title`) INNER JOIN 
> >> `auto_category` ON (`auto_type`.`category_id` = 
> `auto_category`.`title`) 
> >> INNER JOIN `auto_client` T4 ON (`auto_category`.`client_id` = 
> T4.`title`) 
> >> INNER JOIN `auto_subcategory` ON (`auto_type`.`subcategory_id` = 
> >> `auto_subcategory`.`title`) INNER JOIN `auto_client` T6 ON 
> >> (`auto_subcategory`.`client_id` = T6.`title`) INNER JOIN 
> `auto_category` 
> >> T7 ON (`auto_subcategory`.`category_id` = T7.`title`) INNER JOIN 
> >> `auto_client` T8 ON (T7.`client_id` = T8.`title`) INNER JOIN 
> >> `auto_project` ON (`auto_type`.`project_id` = `auto_project`.`title`) 
> >> INNER JOIN `auto_client` T10 ON (`auto_project`.`client_id` = 
> T10.`title`) 
> >> INNER JOIN `auto_category` T11 ON (`auto_project`.`category_id` = 
> >> T11.`title`) INNER JOIN `auto_client` T12 ON (T11.`client_id` = 
> >> T12.`title`) INNER JOIN `auto_subcategory` T13 ON 
> >> (`auto_project`.`subcategory_id` = T13.`title`) INNER JOIN 
> `auto_client` 
> >> T14 ON (T13.`client_id` = T14.`title`) INNER JOIN `auto_category` T15 
> ON 
> >> (T13.`category_id` = T15.`title`) INNER JOIN `auto_client` T16 ON 
> >> (T15.`client_id` = T16.`title`) ORDER BY `auto_type`.`id` DESC 
> > 
> > -- 
> > 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/-/TUuWsU8jlKgJ. 
> > 
> > To post to this group, send email to 
> > django...@googlegroups.com<javascript:>. 
>
> > To unsubscribe from this group, send email to 
> > django-users...@googlegroups.com <javascript:>. 
> > For more options, visit this group at 
> > http://groups.google.com/group/django-users?hl=en. 
>
>
>
> -- 
> ...we look at the present day through a rear-view mirror. This is 
> something Marshall McLuhan said back in the Sixties, when the world 
> was in the grip of authentic-seeming future narratives. He said, “We 
> look at the present through a rear-view mirror. We march backwards 
> into the future.” 
>
> http://www.warrenellis.com/?p=14314 
>

-- 
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/-/21G2Rl_qczoJ.
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