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.
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')
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