Media Url返回错误500 django

时间:2017-01-31 14:53:23

标签: python django django-templates django-urls

有以下问题,我在settings.py中按以下方式配置:

RUTA_PROYECTO = os.path.dirname(os.path.realpath(__file__))
MEDIA_ROOT = os.path.join(RUTA_PROYECTO,'fotos')
MEDIA_URL = '/media/'

在我的网址文件中,我有:

from django.conf.urls.static import static

Urlpatterns = patterns ('',
....
) + static (settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

我的模特

def upload_name(instance, filename):
return '{}/{}'.format(instance.persona.nro_doc, filename)

class FotosPersona(models.Model):
    persona        = models.ForeignKey(Personas,related_name='fotos_persona')
    tipo_foto      = models.CharField(max_length=25)
    foto           = models.ImageField(upload_to=upload_name)
    fecha          = models.DateField(auto_now=True)

    class Meta:
        db_table = 'fotos_persona'

保存数据时,图像存储在以下结构的文件夹中:

Project
 |
 |
 |----Project
         |---- settings.py
         |---- media
         |---- urls.py
         .....

但是当我想在模板中显示图像时,它不会显示。

在浏览器中我输入了

http://localhost:8000/media/other_folder/image_file.jpg url

它返回HTTP 500错误。

1 个答案:

答案 0 :(得分:0)

我知道我的回答有点晚了,但是考虑到您的设置,这可能会很有用。本质上,您已将MEDIA_URL指定为“ / media /”。没关系。

但是,您将面临有关URL模式的问题。您可能会有一个通用网址,类似于:

path('<index>', views.index, name='index'),

在这种情况下,此URL将处理来自媒体URL的所有内容。尽管这不是理想的选择,但出于发展的目的,我建议将您的网址格式更改为以下内容:

urlpatterns = static (settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) + [
    ...
    ]

在处理URL模式“ / media /”的层次结构中,现在将出现在具有常规模式的所有URL之前。现在,媒体URL会先处理。

希望这可以解决您的查询。