模型中的Django文件字段

时间:2018-10-11 03:00:26

标签: django django-models django-views

我正在尝试显示在模型中上传的HTML文件。目前,使用{{ object.file.url }}语法仅显示文件的路径。我想显示文件本身。

仅有的其他内容是我已经解决了MEDIA_ROOT的问题,并且添加了我的网址:

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

现在,该URL实际显示为folder/file.html。希望将文件作为较大模型的列表视图和详细信息视图的一部分。

1 个答案:

答案 0 :(得分:1)

我还没有尝试过,但是至少您应该了解一下。 假设您有FielField,并且需要从record渲染值。您可能需要使用Class-Based视图,因为它具有许多现成的功能。

models.py

from django.db import models


class DjFile(models.Model):
    title = models.CharField()
    file = models.FileField(upload_to='files')

views.py

from django.shortcuts import render, get_object_or_404

# Function-Based View
from djfiles.models import DjFile


def dj_view(request, pk=None):
    """Get the record and render the `file`"""
    obj = get_object_or_404(DjFile, pk=pk)
    return render(request, obj.file, {
        'title': obj.title
    }, content_type='application/xhtml+xml')