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.