Хотя я понял, что могу вызвать определение функции из наших моделей, я не могу извлечь имя файла моего загруженного документа. Ниже я попробовал следующий формат шаблона, но любой результат соответствует моему желаемому результату:
.html Версия 1
<form action="." method="GET">
{% if documents %}
<ul>
{% for document in documents %}
<li> {{ document.docfile.filename }}
<input type = "submit" name="load-data" value="Add to Layer"/>
</li>
{% endfor %}
</ul>
Результат: отображается только кнопка.
.html Версия 2
<form action="." method="GET">
{% if documents %}
<ul>
{% for document in documents %}
<li> {{ document.filename }}
<input type = "submit" name="load-data" value="Add to Layer"/>
</li>
{% endfor %}
</ul>
Результат: отображается только кнопка.
.html Версия 3
<form action="." method="GET">
{% if documents %}
<ul>
{% for document in documents %}
<li> {{ document.docfile.name }}
<input type = "submit" name="load-data" value="Add to Layer"/>
</li>
{% endfor %}
</ul>
Результат: печатается полный путь (например, /documents/2016/10/08/filename.csv) вместе с кнопкой
Вот остальная часть моего кода:
models.py
class Document(models.Model):
docfile = models.FileField(upload_to='document/%Y/%m/%d')
def filename(self):
return os.path.basename(self.file.name)
views.py
documents = Document.objects.all()
return render(request, 'gridlock/upload-data.html',
{
'documents' : documents,
'form': form
})
Надеюсь, кто-нибудь объяснит, почему все, что я пробовал: {{ document.docfile.filename }}
, {{document.file.filename}}
или {{document.filename}}
, у меня тоже не работает? Спасибо!
template tag
вместо редактирования моделей. Проверьте [SO Post] [1] из приведенного выше ответа. Вы найдете ответ при создании тега шаблона. [1]: stackoverflow.com /вопросы/2683621/ - person cutteeth   schedule 18.10.2016