2012-06-29 55 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的調試工具欄裏

從我的設置中刪除此之後,演示文稿中的管理面板有效地加載。

感謝大家對興趣和支持的關注,當您遇到性能問題時,請謹慎分析附加組件。