Путь в поле FileField django
Я подготовил свою модель для создания PDF, заполненного всеми полями, которые она включает, и я пытаюсь связать сгенерированный файл с pdf = models.FileField()
. Однако путь к файлу кажется нормальным, но я не могу добраться до файла через представление.
models.py:
class Lesson(models.Model):
# fields
# ...
pdf = models.FileField(upload_to = 'pdfs/', default = None, blank = True)
def render_template(self, request):
#some magic
BASE_DIR = str(Path(__file__).resolve().parent.parent)
file_name = 'myfile'
os.system(f"pdflatex -halt-on-error --output-directory={BASE_DIR}/media/pdfs {BASE_DIR}/media/tex/rendered/{file_name}")
os.system(f"rm {BASE_DIR}/media/tex/rendered/{file_name}.tex")
os.system(f"rm {BASE_DIR}/media/pdfs/{file_name}.aux")
os.system(f"rm {BASE_DIR}/media/pdfs/{file_name}.log")
return f"{BASE_DIR}/media/pdfs/{file_name}.pdf"
views.py:
def create_lesson(request):
lesson = Lesson()
lesson.pdf = lesson.render_template(request)
lesson.save()
message = {
'tag' : 'success',
'body' : "Successfully added new lesson!"
}
return JsonResponse({'message' : message})
Но при размещении <a href="{{ lesson.pdf }}">CLICK TO VIEW FILE</a>
ссылка направляет на:
http://localhost:8000/docs/lessons/media/pdfs/myfile.pdf
Какой путь должен быть установлен для поля pdf, чтобы направить его на media/pdf/myfile.pdf
в models.py
?
Просто добавьте следующий код:
<a href="/media/{{ lesson.pdf }}">CLICK TO VIEW FILE</a>
После добавления приведенного выше кода, вы будете перенаправлены на этот путь media/pdf/myfile.pdf