0

我正在尝试为我的帖子制作一个带有图像字段的博客。我在 django 管理面板中有 imageupload 工作,但我的缩略图损坏了。如果我单击图像,则会收到以下 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 的子文件夹。

谁能帮我搞定这个工作?

谢谢

4

1 回答 1

0

它附加到您的 MEDIA_ROOT 设置。 https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.FileField.upload_to

为上传的文件设置媒体根目录以检索文件,我举个例子:

# 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]

虽然这绝对不推荐!

于 2015-04-08T22:16:48.767 回答