[PYTHON] So zeigen Sie Bilder in Djangos Admin an

Auf der Django-Verwaltungssite gab es den Fall "Wenn das Bild auf dem Listenbildschirm angezeigt werden kann, wäre die Arbeitseffizienz gut", aber als ich es überprüfte, war es sehr einfach, sodass ich es als Tipps aufzeichnen werde.

Es tut mir ein wenig leid, dass Qiita nur wenige einfache Informationen enthält, aber Django ist häufig mit Stapelüberlauf gefüllt, selbst wenn Sie eine Google-Suche durchführen. Daher gibt es nur wenige Informationen, die auf Japanisch angezeigt werden, sodass sie für jemanden nützlich sind. Ich denke, es kann veröffentlicht werden.

Für diesen Artikel haben wir den Betrieb mit Django 1.8 bestätigt.

Was willst du tun

イメージ図

Wie schreibt man

Ich werde es als Fortsetzung meines Buches Verwendung von ManyToManyField mit Admin (Verwaltungsseite) von Django schreiben.

Definieren Sie eine Methode (admin_og_image) mit einem beliebigen Namen, die den Dateipfad des Bildes in models.py wie unten gezeigt zurückgibt, und führen Sie dies als allow_tags = True aus.

models.py

@@ -11,9 +11,18 @@ class Article(models.Model):
     title = models.CharField(max_length=100)
     author = models.ForeignKey(Author, blank=True, null=True)
     meta = models.ManyToManyField('Tag')
-
+    og_image = models.ImageField(default='')
+    
     def __unicode__(self):
         return self.title
+    
+    def admin_og_image(self):
+        if self.og_image:
+            return '<img src="{}" style="width:100px;height:auto;">'.format(self.og_image)
+        else:
+            return 'no image'
+        
+    admin_og_image.allow_tags = True

Fügen Sie dann den entsprechenden Methodennamen zu list_display in admin.py hinzu und fertig.

admin.py

@@ -3,7 +3,7 @@ from django.contrib import admin
 from .models import Author, Article, Tag
 
 class ArticleAdmin(admin.ModelAdmin):
-    list_display = ('title', 'author', '_meta')
+    list_display = ('title', 'author', '_meta', 'admin_og_image')

Ergänzung

Darüber hinaus ist es auch möglich, es nur mit admin.py vollständig zu schreiben. In diesem Fall ist es in Ordnung, wenn Sie wie folgt schreiben.

models.py

@@ -11,9 +11,18 @@ class Article(models.Model):
     title = models.CharField(max_length=100)
     author = models.ForeignKey(Author, blank=True, null=True)
     meta = models.ManyToManyField('Tag')
-
+    og_image = models.ImageField(default='')
+    

admin.py

@@ -3,11 +3,19 @@ from django.contrib import admin
 from .models import Author, Article, Tag
 
 class ArticleAdmin(admin.ModelAdmin):
-    list_display = ('title', 'author', '_meta')
+    list_display = ('title', 'author', '_meta', 'admin_og_image')
 
     def _meta(self, row):
         return ','.join([x.name for x in row.meta.all()])
 
+    def admin_og_image(self, row):
+        if row.og_image:
+            return '<img src="{}" style="width:100px;height:auto;">'.format(row.og_image)
+        else:
+            return 'no image'
+        
+    admin_og_image.allow_tags = True
+    

Recommended Posts

So zeigen Sie Bilder in Djangos Admin an
So sammeln Sie Bilder in Python
Verwendung von ManyToManyField mit Djangos Admin
So zeichnen Sie ein OpenCV-Bild mit Pygame
Bilder mit Matplotlib anzeigen
So legen Sie das Schema in den Django-Datenbankeinstellungen fest
So zeigen Sie mehrere Bilder einer Galaxie in Kacheln an
Verwendung von Bootstrap in der generischen Klassenansicht von Django
Verwendung der Exist-Klausel in Django Queryset
So bedienen Sie GeoIp2 von Django
Hochladen von Dateien in der generischen Klassenansicht von Django
Wie man in Python entwickelt
[Python] Wie man PCA mit Python macht
Umgang mit Sitzungen in SQLAlchemy
Verwendung von Klassen in Theano
Wie man nüchtern mit Pandas schreibt
So aktualisieren Sie Spyder in Anaconda
Wie man CSS in Django reflektiert
Wie man Prozesse in großen Mengen abbricht
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
So führen Sie TensorFlow 1.0-Code in 2.0 aus
Umgang mit Japanisch mit Python
So melden Sie sich bei Docker + NGINX an
So rufen Sie PyTorch in Julia an
So definieren Sie Objekte, die häufig in View verwendet werden, intelligent
Verwendung berechneter Spalten in CASTable
[Einführung in Python] Wie verwende ich eine Klasse in Python?
So unterdrücken Sie Anzeigefehler in matplotlib
Dynamisches Definieren von Variablen in Python
So machen Sie R chartr () in Python
So löschen Sie abgelaufene Sitzungen in Django
[Itertools.permutations] So löschen Sie eine Sequenz in Python
Verwendung von Google Test in C-Sprache
So implementieren Sie einen verschachtelten Serializer mit drf-flex-Feldern
So führen Sie Befehle mit einem Jupyter-Notebook aus
Wie man in GitPython '--gags fetch --tags' macht
Wie bekomme ich Stacktrace in Python?
So zeigen Sie die neunundneunzig Tabelle in Python an
So extrahieren Sie einen Polygonbereich in Python
So weisen Sie den Index im Pandas-Datenrahmen neu zu
So überprüfen Sie die Version von opencv mit Python
So aktivieren Sie SSL (TLS) in Apache
Verwendung von Anacondas Interpreter mit PyCharm
So legen Sie ein nicht geprüftes Ziel in Flake8 fest
So wechseln Sie die Python-Version in Cloud9
Verwendung von __slots__ in der Python-Klasse
Wie man relativ einfach Gesichtsbilder sammelt
So füllen Sie mit Python dynamisch Nullen aus
So führen Sie vom Server gesendete Ereignisse in Django durch
Verwendung regulärer Ausdrücke in Python
So verwenden Sie Map in ViewPager von Android
Hinzufügen von Optionen zum run.ver-Manager von Django
So zeigen Sie Hello World in Python an
Lesen von CSV-Dateien mit Pandas
So ändern Sie die Editorfarbe in PyCharm