能够上传文件,但不能检索/播放它们-找不到页面

时间:2019-08-22 11:15:48

标签: django

我正在Django和Postgres中创建一个网站,用户可以在其中回答多个问题并上传一些PDF。

我可以上传PDF,但无法显示。我希望用户能够单击链接,然后打开一个包含PDF的新网页。

在我的 details.html 中,我编写了代码:

<a href="{{ MEDIA_URL }}{{project.thirdquestiondetail.third_seven.url}}">Click here to see the file</a>

但是,如果用户单击链接,他将收到以下消息:

Error

我有以下内容:

mysite / urls.py

from django.contrib import admin
from django.urls import path, include
from django.views.generic.base import TemplateView
from django.conf import settings
from django.views.static import serve
from django.conf.urls.static import static

urlpatterns = [
    path('', TemplateView.as_view(template_name='home.html'), name='home'),
    path('conditions/', TemplateView.as_view(template_name='conditions.html'), name='conditions'),
    path('admin/', admin.site.urls),
    path('users/', include('users.urls')),
    path('users/', include('django.contrib.auth.urls')),
    path('projects/', include('projects.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

mysite / settings.py

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'mysite/static/')
]

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

如上所述,我很确定PDF已上传。实际上,如果我以超级用户身份在管理面板中登录,则可以看到PDF。 Admin panel

如何,如果我单击它,则会收到上面报告的相同404错误

我认为在定义/media/时出现的错误是我的 settings.py 。因此,我检查了几个类似的问题,但似乎我的设置符合所选答案。

2 个答案:

答案 0 :(得分:0)

做出这些更改后,退出并重新运行class SomeClass <T> { T someThing; public SomeClass(Class<T> someType) { try { Field field = someType.getField("test"); field.setAccessible(true); Object fieldObj = field.get(someType); this.someThing = (T) fieldObj; // Unsafe } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } } }

尝试更改此manage.py runserver

<a href="{{ MEDIA_URL }}{{project.thirdquestiondetail.third_seven.url}}">Click here to see the file</a>

答案 1 :(得分:0)

我注意到上传实际上也没有用。

我解决如下:

1)在我的 views.py 中,我必须将Range.Find更改为request.POST['chosen-name']

2)在我的 template.html

中,以硬编码的html形式添加标签request.FILES['chosen-name']

所以来自:

enctype="multipart/form-data

收件人:

  <form method="post">..</form>

检查:Django FileField upload is not working for me