[PYTHON] Optimieren der Django-Administrationsseite

Das Gute an Django ist, dass die Administrationsseite leistungsstark ist. Wenn Sie sie jedoch ordnungsgemäß verwenden, gibt ORM verschiedene SQL-Anweisungen aus. Seien Sie also vorsichtig. Ich fange gerade an, es zu verwenden, also werde ich es nach Bedarf hinzufügen.

Überschreiben Sie das Abfrageset, um das Listenseiten-SQL zu optimieren

Select_related ist aktiviert, wenn list_display ein ForeignKey-Feld enthält. Select_related folgt jedoch nicht der Beziehung des FK-Felds zu null = True, sodass das Ziel von einzelnem SQL für die Anzahl der Datensätze abgerufen wird. Daher wird beim Öffnen der Listenseite die SELECT-Anweisung ungefähr 400 Mal ausgegeben. Außerdem verfolgt select_related das FK-Feld mit null = False auf unbestimmte Zeit, sodass möglicherweise SQL mit 10 oder 20 Tabellen verknüpft wird.

Um es gut zu machen, definieren Sie queryset selbst. Mit diesem können Sie so viel wie nötig beitreten.

admin.py


class UserRelationshipAdmin(admin.ModelAdmin):
    list_display = ('id', 'from_user', 'to_user', 'is_block', 'is_friend', 'created_at')
    
    def queryset(self, request):
        return super(UserRelationshipAdmin,
                 self).queryset(request).select_related('from_user', 'to_user')

Geben Sie raw_id_fields für Elemente mit einer großen Anzahl von Fällen an

ForeignKey- und Auswahlfelder werden standardmäßig per Pulldown (Element auswählen) auf der Detailseite angezeigt. Es ist großartig, wenn auf Zehntausende von Tabellen verwiesen wird. Wenn Sie also raw_id_fields angeben, wird ein Textfeld + eine Beschriftung angezeigt.

admin.py


class UserProfileAdmin(admin.ModelAdmin):
    raw_id_fields = ('user',)

Eine Beschreibung finden Sie hier im offiziellen Dokument https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.raw_id_fields

Recommended Posts

Optimieren der Django-Administrationsseite
[Django] Möchten Sie die Administrationsseite anpassen?
Initialisieren Sie die Django-App
Erstellen Sie Ihre eigene Django-Middleware
Installieren Sie Django auf dem Mac
Django-Verwaltungsbildschirm list_filter-Anpassung
Wenn Sie den Benutzernamen und das Passwort des Verwaltungsbildschirms in Django vergessen haben
Django Management Screen Reverse Memo
Analysieren Sie Ihre Website mit Google Analytics-1 Chapter
Registrieren Sie die Django-Anwendung im Projekt
Stellen Sie die Django-Anwendung auf Heroku bereit
Django-Tipps - Erstellen Sie eine Ranking-Site mit Django-
[Django] Erstellen Sie Ihre eigene 403, 404, 500-Fehlerseite
Anpassung des Django-Verwaltungsbildschirms Erster Schritt