Джанго сломанные эскизы
Я пытаюсь сделать блог с полем изображения для своих сообщений. У меня есть imageupload, работающее в админ-панели django, но я сломал эскизы. Если я нажимаю на изображения, я получаю ошибку 404 со следующим:
Using the URLconf defined in firstblog.urls, Django tried these URL patterns, in this order:
^$ [name='home']
^admin/
The current URL, images/heroimage/, didn't match any of these.
в моем models.py у меня есть:
from django.db import models
from django.db.models import permalink
class posts(models.Model):
author = models.CharField(max_length = 45)
title = models.CharField(max_length = 100)
bodytext = models.TextField()
timestamp = models.DateTimeField()
image1 = models.ImageField(upload_to="images/heroimage/", default='')
category = models.ForeignKey('blog.Category', default='')
def __unicode__(self):
return '%s' % self.title
@permalink
def get_absolute_url(self):
return ('view_blog_post', None, { 'slug': self.slug })
class Category(models.Model):
title = models.CharField(max_length=100, db_index=True)
slug = models.SlugField(max_length=100, db_index=True)
def __unicode__(self):
return '%s' % self.title
@permalink
def get_absolute_url(self):
return ('view_blog_category', None, { 'slug': self.slug })
Я пытаюсь сделать так, чтобы изображение, которое было загружено в пост, отображалось на сайте.
Вот мой index.html, где я пытаюсь вызвать изображение к посту.
<div class="container">
<h1>First Blog</h1>
{% for post in posts %}
<div class="posts">
<p><a href="/images/heroimage/{{blog.slug}}"> <img src="{{blog.image1.url}}" /> {{ blog }}</a></p>
<h2>{{ post.title }}</h2>
<h3>Posted on {{ post.timestamp }} by {{ post.author }}</h3>
<p> {{ post.bodytext }}</p>
</div>
<hr>
{% endfor %}
</div>
Мой django-проект, который я создал, назывался firstblog, затем у меня есть приложение под названием blog. В корневой папке моего проекта "firstblog" у меня есть папка с изображениями, а затем подпапка, которая называется heroimage.
Может кто-нибудь помочь мне заставить это работать?
Спасибо
1 ответ
Он добавляется к вашей настройке MEDIA_ROOT. https://docs.djangoproject.com/en/1.8/ref/models/fields/
Установите медиа-корень для загружаемых файлов, чтобы получить файлы, приведу пример:
# settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# models
class Blog(models.Model):
main_image = models.ImageField(default='none/none.jpg', upload_to='blog'
# template
<img src="/media/{{ blog.main_image }}">
# media folder after
media/blog/imageuploaded.jpg
media/none/none.jpg # This file was already created
Чтобы загрузить в статический каталог изменения
MEDIA_ROOT = STATIC_ROOT or STATICFILES_DIRS[0]
Хотя это абсолютно не рекомендуется!