Джанго Файл Поле в модели - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь отобразить HTML-файл, который я загружаю в модель.В настоящее время при использовании синтаксиса {{ object.file.url }} просто отображается путь к файлу.Я хотел бы отобразить сам файл.

Единственные дополнительные части - это то, что я адресовал свой MEDIA_ROOT и добавил к своим URL-адресам:

 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 голосов
/ 12 октября 2018

Я не пробовал это, но, по крайней мере, вы должны понять.Предположим, у вас есть 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')
...