我正在Django和Postgres中创建一个网站,用户可以在其中回答多个问题并上传一些PDF。
我可以上传PDF,但无法显示。我希望用户能够单击链接,然后打开一个包含PDF的新网页。
在我的 details.html 中,我编写了代码:
<a href="{{ MEDIA_URL }}{{project.thirdquestiondetail.third_seven.url}}">Click here to see the file</a>
但是,如果用户单击链接,他将收到以下消息:
我有以下内容:
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。
如何,如果我单击它,则会收到上面报告的相同404错误
我认为在定义/media/
时出现的错误是我的 settings.py 。因此,我检查了几个类似的问题,但似乎我的设置符合所选答案。
答案 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>