[PYTHON] DJango Memo: Von Anfang an (weitere Änderungen am Verwaltungsbildschirm)

Ich werde weiterhin mit der Admin-Seite spielen.

Auswahl hinzufügen

Letztes Mal wurde die Umfrage registriert, aber dieses Mal werden wir auch Choice registrieren (Review: Poll and Choice in models.py). Eins ist definiert).

Sie können es als admin.site.register (Auswahl) verwenden, wodurch die Registrierungsbildschirme für Umfragen und Auswahl getrennt werden. Die Beziehung zwischen den beiden besteht darin, dass die Umfrage mehrere Auswahlmöglichkeiten enthält. Daher möchte ich einen Bildschirm erstellen, der dem entspricht.

admin.py ######

class ChoiceInline(admin.StackedInline):  #Ist StackedInline ein Inline-Format?
    model = Choice
    extra = 3  #Was bedeutet es, wie viele Modelle einzubauen?

class PollAdmin(admin.ModelAdmin):
    fieldsets = [
        (None,               {'fields': ['question']}),
        ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
    ]
    inlines = [ChoiceInline]  #Ist Inline wie ein zusätzlicher Bereich?

admin.site.register(Poll, PollAdmin)

#"?" Wird am Ende des Kommentars hinzugefügt, weil ich nicht sicher bin, ob ich es verstehe.

Die Auswahl kann auch auf dem Bearbeitungsbildschirm von Poll registriert werden. Wenn Sie es kompakter gestalten möchten, setzen Sie die übergeordnete Klasse von ChoiceInline auf TabularInline, und jede Auswahl passt in eine Zeile.

Alle Modelle sind jetzt auf dem Admin-Bildschirm registriert.

Ich werde ein bisschen mehr damit spielen.

Änderungslistenseite anpassen

Standardmäßig werden nur die gespeicherten Daten als Zeichenfolge auf dem Listenanzeigebildschirm angezeigt. Hier können jedoch auch andere Elemente hinzugefügt werden.

Fügen Sie dazu der PollAdmin-Klasse die folgende Zeile hinzu.

admin.py ######

class PollAdmin(admin.ModelAdmin):
    # ...
    list_display = ('question', 'pub_date')  # list_Anzeige mit Anzeige festlegen
    #Ich habe zufällig einen Fehler beim Schreiben gemacht und den Vorgang sogar im Listenformat bestätigt. Ist es natürlich?

Und wenn du so schreibst

    list_display = ('question', 'pub_date’,’was_published_recently’)
    # was_published_kürzlich ist eine in Poll definierte Funktion (beachten Sie, dass vor kurzem heute im vorherigen Dokument war)

Es scheint auch möglich zu sein, den Rückgabewert der Funktion anzuzeigen. Der Unterstrich wird übrigens durch ein Leerzeichen ersetzt.

Optionen hinzufügen

Als ersten Schritt werde ich ein kleines Poll-Modell hinzufügen.

models.py ######

from django.utils import timezone

class Poll(models.Model):
    # ...
    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)  #Ist es innerhalb eines Tages nach Veröffentlichung?
    was_published_recently.admin_order_field = 'pub_date'
    was_published_recently.boolean = True
    was_published_recently.short_description = 'Published recently?'

Sie können Optionen hinzufügen, indem Sie der PollAdmin-Klasse Folgendes hinzufügen.

admin.py ######

    list_filter = ['pub_date']  # pub_Funktion zum Eingrenzen basierend auf dem Datum
    search_fields = ['question']  #Fähigkeit, anhand von Fragen zu suchen
    date_hierarchy = 'pub_date'  #Ähnlich in der Funktion zum Datumsfilter

Es scheint, dass Sie es mithilfe einer Vorlage detaillierter anpassen können, aber ich werde es diesmal nicht berühren, da es im nächsten Tutorial ausführlich beschrieben wird. Und

Es scheint, dass der nächste Bildschirm endlich zur Veröffentlichung freigegeben wird

Eingetragenes Tutorial 3. Ich freue mich.

Recommended Posts

DJango Memo: Von Anfang an (weitere Änderungen am Verwaltungsbildschirm)
DJango-Memo: Von Anfang an (über den Verwaltungsbildschirm) mein Suchtpunkt
DJango Memo: Von Anfang an (Fehlerbildschirmeinstellung)
DJango-Memo: Von Anfang an (Bearbeiten des Verwaltungsbildschirms) Es gibt ein Rätsel
DJango Memo: Von Anfang an (Vorbereitung)
DJango Memo: Von Anfang an (Modelleinstellung)
DJango Memo: Von Anfang an (Erstellen einer Ansicht)
Melden Sie sich von Selenium aus beim Fortigate (6.0) -Verwaltungsbildschirm an, um sich abzumelden
DJango Hinweis: Von Anfang an (Formularverarbeitung)
Django Memo # 1 von Grund auf neu
DJango Hinweis: Von Anfang an (mit einer generischen Ansicht)
Übergang zum Update-Bildschirm mit dem Django-Tag
DJango Hinweis: Von Anfang an (Vereinfachung und Aufteilung von URLConf)
So registrieren Sie dieselben Daten mehrmals mit einer Eingabe auf dem Verwaltungsbildschirm von Django
So nehmen Sie erste Einstellungen für die Django-Projekterstellung vor
Entwicklung einer WEB-Anwendung mit Django [Daten vom Verwaltungsbildschirm hinzufügen]
[Django] Korrigieren Sie die Pluralform des Modellnamens auf dem Verwaltungsbildschirm
Die Geschichte, dass "calendar.day_abbr" auf dem Admin-Bildschirm von django nicht aktualisiert werden konnte
Django Management Screen Reverse Memo
Tensorflow-Memo [von Zeit zu Zeit aktualisiert]
Wirf GQL mit einer numerischen ID aus dem AppEngine-Verwaltungsbildschirm
Versuchen Sie es mit Pythons Webframework Django (1) - Von der Installation bis zum Serverstart
So erstellen Sie eine Anwendung aus der Cloud mithilfe des Django-Webframeworks
[Django] So übergeben Sie Werte direkt von Vorlagen-Tags an JavaScript-Variablen
So registrieren Sie nur eine Daten auf dem Django-Verwaltungsbildschirm
So überprüfen Sie die Version von Django
Notizen vom Anfang von Python 1 lernen
Lassen Sie die Stückliste am Anfang der Zeichenfolge weg
So bedienen Sie Linux von der Konsole aus
So greifen Sie von außen auf den Datenspeicher zu
Notizen vom Anfang von Python 2 lernen
Holen Sie sich nur den Text aus dem Django-Formular.
Wiederholen Sie alles für den Django-Anmeldebildschirm
[Django-Memo] Ich möchte die angemeldeten Benutzerinformationen im Voraus im Formular festlegen.
So generieren Sie automatisch ein API-Dokument mit dem Django REST-Framework und POST vom Dokumentbildschirm