在模板中显示用户上传的图像

时间:2020-01-26 10:12:41

标签: django django-models django-templates

我已将所有必需的代码添加到settins.py(MEDIA_URL,MEDIA_ROOT和django.template.context_processors.media)。 我还为图像创建了模型

class Image(models.Model):
    question = models.ForeignKey(Question, on_delete = models.CASCADE)
    file = models.ImageField(upload_to="polls/")
    author = models.CharField(max_length = 60, default = "Unknown")

因此,当我通过管理面板上传图片时,django将其保存到mysite / media / polls
我现在如何从模板访问图片?我尝试了很多,但未成功的尝试似乎是

{% if question.image_set %}
  {% for image in question.image_set.all %}
    <img src="{{ MEDIA_URL }}{{ image.file }}">
  {% endfor %}
{% endif %}

此模板的结果类似于<img src="media/polls/rabstol_net_china_04_1600x1200.jpg"> 路径似乎是正确的,但是图像没有出现。我想这是因为结果是相对路径,但我不知道如何将其设为绝对路径。
设置:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_URL = 'media/'
MEDIA_ROOT = os.path.join(BASE_DIR, MEDIA_URL)
...
TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR, 'templates')],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.media',
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},]

1 个答案:

答案 0 :(得分:0)

serializer
相关问题