简体   繁体   English

Django Admin:从管理表单显示图片

[英]Django Admin : Display pictures from Admin Form

Unfortunately I didn't handle Django since several months. 不幸的是,自几个月以来,我一直没有处理Django。 I would like to know How I can display Django object from my Admin form to my template. 我想知道如何从管理表单向模板显示Django对象。

I'm making a personal website and all forms (add pictures, add extra-info, ...) should be from admin panel. 我正在建立一个个人网站,所有表格(添加图片,添加额外信息等)都应来自管理面板。

I have a model.py file : 我有一个model.py文件:

from __future__ import unicode_literals
from django.db import models

class ImageUpload(models.Model) :

    Nom                 = models.CharField(max_length=50, verbose_name="Nom de l'objet", blank=False)
    Instrument          = models.CharField(max_length=50, verbose_name="Instrument", blank=False)
    Imageur             = models.CharField(max_length=50, verbose_name="Imageur", blank=False)
    Monture             = models.CharField(max_length=50, verbose_name="Monture", blank=False)
    Instrument_Guidage  = models.CharField(max_length=50, verbose_name="Instrument de Guidage", blank=False)
    Imageur_Guidage     = models.CharField(max_length=50, verbose_name="Imageur de Guidage", blank=False)
    Reducteur           = models.CharField(max_length=50, verbose_name="Reducteur/Correcteur de Focale", blank=False)
    Logiciels           = models.CharField(max_length=60, verbose_name="Logiciels", blank=False)
    Date                = models.DateField()
    Nombre_Pose         = models.IntegerField(verbose_name="Nombre de pose total")
    Temps_Pose          = models.IntegerField(verbose_name="Temps de pose unitaire")
    Integration         = models.FloatField(verbose_name="Temps de pose total")
    Darks               = models.IntegerField(verbose_name="Nombre de Darks")
    Flats               = models.IntegerField(verbose_name="Nombre de Flats")
    Bias                = models.IntegerField(verbose_name="Nombre de Bias")
    Lunaison            = models.FloatField(verbose_name="Pourcentage de Lune")
    FWHM                = models.FloatField(verbose_name="FWHM moyenne")
    Temperature         = models.IntegerField(verbose_name="Température")
    Lieu                = models.CharField(max_length=60, verbose_name="Lieu de Photo", blank=False)
    Image_upload        = models.ImageField(upload_to='Media/', verbose_name="Image")

    def __unicode__(self):
        return unicode (self.id, self.Nom, self.Instrument, self.Imageur, self.Monture, self.Instrument_Guidage, self.Imageur_Guidage, self.Reducteur, self.Logiciels, 
        self.Date, self.Nombre_Pose, self.Temps_Pose, self.Integration, self.Darks, self.Flats, self.Bias, self.Lunaison, self.FWHM, self.Temperature, self.Lieu, self.Image_upload)

I have my admin.py file : 我有我的admin.py文件:

from django.contrib import admin

from .models import ImageUpload

class ImageUploadAdmin(admin.ModelAdmin) :

    fields = ["Nom", "Instrument", "Imageur", "Monture", "Instrument_Guidage", "Imageur_Guidage", "Reducteur", "Logiciels", 
        "Date", "Nombre_Pose", "Temps_Pose", "Integration", "Darks", "Flats", "Bias", "Lunaison", "FWHM", "Temperature", "Lieu", "Image_upload"]

admin.site.register(ImageUpload,ImageUploadAdmin)

And my views.py file : 和我的views.py文件:

def CielProfond(request) :

    Images = ImageUpload.objects.latest("id")

    return render(request, 'CielProfond.html', {"Images" : Images})

Finally, in my template file : 最后,在我的模板文件中:

{% block content %}
<img src='{{Images.Image_upload}}'/>
{% endblock content %}

I don't have any error, but my picture doesn't display and I have a small icon. 我没有任何错误,但是我的图片没有显示,并且有一个小图标。 My path seems to be good too. 我的道路似乎也不错。

I found the answer. 我找到了答案。

I have to add .url like this : 我必须像这样添加.url

<img src='{{Images.Image_upload.url}}'/>

In this way, my picture is well-displayed in my HTML template 这样,我的图片可以很好地显示在HTML模板中

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM