2017-02-06 4 views
1

Я новичок в Django (1.10), поэтому, пожалуйста, извините меня. Я пытаюсь визуализировать изображения из моей модели одежды. Попытка создать какой-то небольшой интернет-магазин для обучения.Фотографии с модели в HTML Django 1.10

My Model:

from __future__ import unicode_literals 

from django.db import models 
from django.utils import timezone 

class Clothes(models.Model): 
    user = models.ForeignKey('auth.User') 
    title = models.CharField(max_length=200) 
    description = models.TextField() 
    image = models.ImageField(upload_to = '/pic_folder/', default = '/pic_folder/None/no-img.jpg') 
    type_clothes = models.CharField(max_length=100) 
    created_date = models.DateTimeField(
      default=timezone.now) 
    published_date = models.DateTimeField(
      blank=True, null=True) 

    class Meta: 
     verbose_name = "Kleding" 
     verbose_name_plural = "Kleding" 

    def publish(self): 
     self.published_date = timezone.now() 
     self.save() 

    def __str__(self): 
     return self.title 

Views.py

from django.shortcuts import render 
from django.utils import timezone 
from .models import Clothes 

def clothes_overview(request): 
    clothes= Clothes.objects.filter(published_date__lte=timezone.now()) 
    return render(request, 'Clothes/clothes_overview.html', {'clothes' : clothes}) 

clothes_overview.html

{% load staticfiles %} 
<html> 
    <head> 
     <title>WebShop</title> 
     <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"> 
     <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css"> 
     <link rel="stylesheet" href="{% static 'css/clothes.css' %}"> 
    </head> 
    <body> 
     <div> 
      <h1><a href="/">Clothing WebShop</a></h1> 
     </div> 

     {% for cloth in clothes %} 
      <div> 
       <p>published: {{ cloth.published_date }}</p> 
       <h1><a href="">{{ cloth.title }}</a></h1> 
       // DISPLAY IMAGE HERE 
       <p>{{ cloth.text|linebreaksbr }}</p> 
      </div> 
     {% endfor %} 
    </body> 
</html> 

Я попробовал один вариант, который я наткнулся на поиск Stack:

   <img src="{{ cloth.image.url }}"> 

Это помогло другим, но оставило мою страницу с разбитыми изображениями. Я посмотрел в источнике с помощью Google Chrome и обнаружил, что путь (специфичны для hoodie.jpg):

<img src="pic_folder/hoodie.jpg"> 

Затем я попробовал другой метод:

   <img src="{% static 'pic_folder/image.jpg' %}"> 

Это сделал показать изображение. jpg в моем браузере несколько раз! Путь, который я нашел:

<img src="/static/pic_folder/image.jpg"> 

мне как-то нужно объединить эти два метода так, что загружаются изображения динамически на веб-странице. Может кто-нибудь мне помочь?

ответ

1

Djangos static шаблонных тегов, позволяет передавать переменные, так как вы предлагаете - объединить подходы

<img src="{% static cloth.image.url %}"> 
+1

Спасибо! Я так много боролся с правильными синтаксисами –

+0

@AnnaJeanine - Не беспокойтесь, вы были рядом! – Sayse

+0

С Django 1.10 предпочитают '{% load static%}' (вместо 'staticfiles'). См. Http://stackoverflow.com/a/34424007/621690 – Risadinha