Comment faire pour afficher une seule image dans Django admin inline
Je suis en utilisant django.contrib.admin
dans une de mes applications.
mes modèles:
class Gallery(models.Model):
location = models.ForeignKey(Location)
date = models.CharField(max_length = 15)
class Image(models.Model):
gallery = models.ForeignKey(Gallery)
name = models.CharField(max_length=35)
image = ImageField(upload_to='songs')
mon admin.py
:
class ImageInline(admin.StackedInline):
model = Image
class GalleryAdmin(admin.ModelAdmin):
inlines = [ ImageInline, ]
Dans la section admin, je suis maintenant en mesure de créer une galerie et ajouter des images sur la même page. Par défaut, django montre trois images de téléchargement des formulaires. Comment puis-je le changer pour un seul?
Vous devez vous connecter pour publier un commentaire.
Vérifier les docs pour InlineModelAdmin.extra et InlineModelAdmin.max_num.
Je crois que dans votre cas
max_num
doit être de 1 etextra
0.extra = 0
Et à mon avis, pour un inline qui a des images pour être utile, vous devez afficher l'image en ligne (donc la coutume de remplacer l'image du widget):
Remarque: que ce n'certains resizey des trucs que vous n'aimez pas - de sorte que vous pouvez avoir besoin de réécrire le pouce de dimensionnement de la partie du widget vous-même.
alors vous allez avoir besoin de remplacer le widget dans votre inline de la forme:
et vous vous retrouvez avec somethig comme ceci (c'est la partie d'un autre projet et a un tas de trucs supplémentaires):
Dans le cas où si vous utilisez sorl-vignettes , widget est comme ceci: