Django 文件上传不起作用:媒体文件丢失和完整路径问题

问题描述 投票:0回答:1

我正在开发一个 Django 项目,我试图处理文件上传,但遇到了一些问题。上传的文件丢失,并且我没有媒体文件的完整路径。这是我到目前为止所做的: 型号 我有一个带有用于上传的 FileField 的模型:

class Article(TrackingModel):
    titleArt = models.CharField(max_length=200)
    descriptionArt = models.TextField()
    content = models.FileField(upload_to='articles/%Y/%m/%d')
    section = models.ForeignKey(Section, on_delete=models.CASCADE)
    is_accepted = models.BooleanField(default=False)
    created_by = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return self.titleArt

设置 我对媒体文件使用以下设置:

MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = 'media/'

网址 我已经设置了这样的 URL 模式:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('ciems_administration/', include('administration.urls')),
    path('auth/', include('accounts.urls')),
    path('', include('intelsight.urls')),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

模板 这是模板的片段,其中显示了文件详细信息:

<div class="container">
    <h1>Report Details</h1>
    {{ article.titleArt }}<br>
    {{ article.descriptionArt }}<br>
    {{ article.content.url }}<br>
    {{ article.section }}<br>
    {{ article.created_at }}<br>
    {{ article.updated_at }}<br>
    <a href="{% url 'articleList' %}" class="btn btn-primary">Back</a>
</div>[![enter image description here](https://i.sstatic.net/O9jkZnK1.jpg)](https://i.sstatic.net/O9jkZnK1.jpg)

问题 上传的文件路径显示为/media/...,但文件实际上并不存在于媒体目录中。 文件上传似乎不起作用,并且我不确定文件是否正确保存。

我尝试过的 已验证 MEDIA_ROOT 和 MEDIA_URL 设置是否正确。 确保媒体目录存在并且具有正确的权限。 检查开发期间提供媒体文件的 DEBUG 是否为 True。

django django-models django-views media django-media
1个回答
0
投票

我想是因为这条线

    content = models.FileField(upload_to='articles/%Y/%m/%d')

可以更改文件保存路径吗? 就像不要使用“/”

© www.soinside.com 2019 - 2024. All rights reserved.