1

Django admin で [プレゼンテーションの追加] に移動しようとすると、応答がレンダリングされるまで 1 分ほど待たなければなりません。問題は、データベースに約 500 枚のスライドがあり、管理者がメニューに入力するためにすべてのスライドを 3 回選択していることです。この量のデータがサーバーをひざまずかせるとは思わないので、明らかにモデル定義に何か問題があります。関係を定義した方法、または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) 

当然のことながら、PresentationAdmin を から削除すると、admin.site.register非常に応答性が高くなります。

4

1 に答える 1

0

私の問題を解決しました-別の犯人がいました: django-debug-toolbar

これをセットアップから削除すると、プレゼンテーションの管理パネルが効果的に読み込まれます。

関心とサポートを提供してくれたすべての人に感謝します。パフォーマンスの問題が発生した場合は、アドオンのプロファイリングに注意してください。

于 2012-06-29T20:56:03.733 に答える