图像未在django模板中显示

时间:2017-07-12 09:02:24

标签: python django image templates

我在django电子商务项目中遇到显示图像文件的问题。任何人都可以帮忙解决这个问题吗?

home.html的

    public sealed partial class MainPage : Page
{      public MainPage()
    {
        this.InitializeComponent();
    }

    //連続音声認識のためのオブジェクト
    private SpeechRecognizer contSpeechRecognizer;
    private CoreDispatcher dispatcher;


    protected async override void OnNavigatedTo(NavigationEventArgs e)
    {
        //ハックグラウンドスレッドからUIスレッドを呼び出すためのDispatcher
        dispatcher = CoreWindow.GetForCurrentThread().Dispatcher;

        //初期化
        contSpeechRecognizer =
            new Windows.Media.SpeechRecognition.SpeechRecognizer();
        await contSpeechRecognizer.CompileConstraintsAsync();

        //認識中の処理定義
        contSpeechRecognizer.HypothesisGenerated +=
            ContSpeechRecognizer_HypothesisGenerated;
        contSpeechRecognizer.ContinuousRecognitionSession.ResultGenerated +=
            ContinuousRecognitionSession_ResultGenerated;


        // 音声入力ないままタイムアウト(20秒位)した場合の処理
        contSpeechRecognizer.ContinuousRecognitionSession.Completed += ContinuousRecognitionSession_Completed;

        //認識開始
        await contSpeechRecognizer.ContinuousRecognitionSession.StartAsync();
    }

    private async void ContinuousRecognitionSession_Completed(SpeechContinuousRecognitionSession sender, SpeechContinuousRecognitionCompletedEventArgs args)
    {
        await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
        {
            textBlock1.Text = "Timeout.";
        });

        // 音声を再度待ち受け
        await contSpeechRecognizer.ContinuousRecognitionSession.StartAsync();
    }

    private async void ContSpeechRecognizer_HypothesisGenerated(
        SpeechRecognizer sender, SpeechRecognitionHypothesisGeneratedEventArgs args)
    {
        //認識途中に画面表示
        await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
        {
            textBlock1.Text = args.Hypothesis.Text;
        });
    }

    private async void ContinuousRecognitionSession_ResultGenerated(
        SpeechContinuousRecognitionSession sender, SpeechContinuousRecognitionResultGeneratedEventArgs args)
    {
        //認識完了後に画面に表示
        await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
        {
            textBlock1.Text = "Waiting ...";
            output.Text += args.Result.Text + "。\n";
        });
    }
}

model.py

    {% for product in products %}
    <div class='col-sm-4'>
        <div class="thumbnail">
                {% if product.productimage_set.all %}
                        {% for item in product.productimage_set.all %}
                        <img class='img-responsive' src="{{ MEDIA_URL }}{{ item.image}}" />                         
                        {% endfor %}

                {% else %}
                <img class='img-responsive' src="{% static "img/placeholder.svg" %}" />
                {% endif %}

                <div class="caption">
                <a href='{{ product.get_absolute_url }}'> <h3>{{ product.title }}</h3></a>
                <p>{{ product.description|truncatewords:15}}</p>
                <p><a href="{{ product.get_absolute_url }}" class="btn btn-primary" role="button">View</a> <a href="#" class="btn btn-default" role="button">Button</a></p>
                </div>
         </div>
    </div> {% endfor %}

settings.py

class ProductImage(models.Model):
product = models.ForeignKey(Product)
image = models.ImageField(upload_to='products/images/')
featured = models.BooleanField(default=False)
thumbnail = models.BooleanField(default=False)
active = models.BooleanField(default=True)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)

def __unicode__(self):
    return self.product.title

1 个答案:

答案 0 :(得分:2)

<img class='img-responsive' src="{{ MEDIA_URL }}{{ item.image.url }}" />

<img class='img-responsive' src="{{ item.image.url }}" />

并在主urls.py

from django.conf import settings 
from django.conf.urls.static import static 


urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)