2012-06-29 54 views
1

当试图导航到Django admin中的'添加演示文稿'时,我必须等待大约1分钟才能呈现响应。问题是我在数据库中有大约500张幻灯片,管理员在三次不同的时间选择所有的幻灯片以填充菜单。我显然在模型定义上做了错误的事情,因为我不希望这么多的数据会让我的服务器瘫痪。为什么我以我定义的关系或使用django管理员的方式遇到此问题的任何可见性?与Django中许多行崩溃的内联堆叠在一起

class PresentationTitle(models.Model): 
    title = models.CharField(max_length=255) 
    order_number = models.IntegerField(default=0) 

    def __unicode__(self): 
     return self.title 

class PresentationUser(models.Model): 
    user = models.OneToOneField(User) 
    authorized_modules = models.ManyToManyField(PresentationTitle) 


class Presentation(models.Model): 
    title = models.ForeignKey(PresentationTitle) 
    user = models.ForeignKey(PresentationUser) 
    presentation_date = models.DateTimeField() 

    def __unicode__(self): 
     return self.title.title 

class Slide(models.Model): 
    .... 

    submodule = models.ForeignKey(Submodule) 

    presentation = models.ManyToManyField(Presentation, through='PresentationSlide') 

    ... 

    class Meta: 
     order_with_respect_to = 'submodule' 
     ordering = ['order'] 


class PresentationSlide(models.Model): 
    presentation = models.ForeignKey(Presentation) 
    slide = models.ForeignKey(Slide) 
    slide_order = models.IntegerField() 

此外,我的管理包括:

class PresentationSlideInline(admin.StackedInline):                                      
    model = PresentationSlide 

class PresentationAdmin(admin.ModelAdmin):                                         
    inlines = [PresentationSlideInline] 

admin.site.register(Presentation, PresentationAdmin) 

可以理解的是,除去刚刚从admin.site.register有PresentationAdmin使得加载非常响应。

+0

你有任何意见与这些模型相关联,或者你只是使用内置的管理模块? – DZittersteyn

+0

这些只是内置的管理模块。视图上没有自定义 - 只需在管理员中为演示文稿声明StackedInline即可。 –

+0

这是什么:return self.title.title?我认为这是一个错误。 – sergzach

回答

0

解决了我的问题 - 有另一个罪魁祸首在作怪:Django的调试工具栏里

从我的设置中删除此之后,演示文稿中的管理面板有效地加载。

感谢大家对兴趣和支持的关注,当您遇到性能问题时,请谨慎分析附加组件。