You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django本地展示数据库PDF失败:ERR_NAME_NOT_RESOLVED错误求助

解决Django本地展示PDF时的ERR_NAME_NOT_RESOLVED错误

核心问题分析

你遇到的ERR_NAME_NOT_RESOLVED错误,根源在于iframe的src路径配置错误,同时缺少Django媒体文件的必要访问配置,导致浏览器无法定位到PDF文件的正确位置。

分步解决方法

1. 修正HTML中的PDF路径

将certificates.html里的iframe src替换为FileField自带的url属性,它会自动生成正确的文件访问路径:

{% block content %}
<main class="container my-4">
    <h3 class="my-4 border-bottom pb-1">Сертификаты</h3>
    <div class="row">
        {% for certificate in certificates %}
          <div class="card shadow">
            <h1>{{certificate.title}}</h1>
            <iframe src="{{ certificate.pdf.url }}" width="100%" height="600px">
            </iframe>
          </div>
        {% endfor %}
    </div>
</main>
{% endblock %}

注意:移除循环内冗余的<html>标签,避免破坏页面DOM结构。

2. 配置settings.py中的媒体文件参数

在项目的settings.py中添加以下配置,指定媒体文件的存储目录和访问URL:

from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

# 媒体文件配置
MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = '/media/'

3. 在项目urls.py中添加媒体文件访问路由

开发环境下,需要让Django处理媒体文件的静态访问请求,在项目根目录的urls.py中修改:

from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('certificates/', views.certificates, name='certificates'),
    # 其他自定义路由...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

4. 验证文件存储位置

确认上传的PDF文件已存入项目根目录的media/pdf/文件夹下——Django的FileField(upload_to='pdf')会自动将文件存入这个路径。

完成以上配置后,重启Django开发服务器,访问证书页面即可正常加载PDF文件。

内容的提问来源于stack exchange,提问作者Artem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 04:45:18