なぜこの django-python スニペットは削除されたファイルをアップロードされたドキュメント リストにも表示するのですか??
ビュー.py
def lists(request):
# Handle file upload
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
filename = Document(docfile = request.FILES['docfile'])
filename.save()
# Redirect to the document list after POST
return HttpResponseRedirect(reverse('sdm:lists'))
# return render_to_response(reverse('sdm:lists'))
else:
form = DocumentForm() # A empty, unbound form
# Load documents for the list page
documents = Document.objects.all()
# Render list page with the documents and the form
return render_to_response(
'sdm/lists.html',
{'documents': documents, 'form': form},
context_instance=RequestContext(request)
)
リスト.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Minimal Django File Upload Example</title>
</head>
<body>
<!-- List of uploaded documents -->
{% if documents %}
<ul>
{% for document in documents %}
<li><a href="{{document.docfile.url }}">{{ document.docfile.name }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No documents.</p>
{% endif %}
<!-- Upload form. Note enctype attribute! -->
<form action="{% url sdm:lists %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<p>{{form.non_field_errors }}</p>
<p>{{form.docfile.label_tag }} {{form.docfile.help_text }}</p>
<p>
{{ form.docfile.errors }}
{{ form.docfile }}
</p>
<p><input type="submit" name="press" value="Upload" /></p>
</form>
</body>
ブラウザ出力
f14 is latest uploaded file and rest all files have been deleted from respective folders but why is that it is still showing all files in list when are not even present?
私はdjango-pythonが初めてですが、デバッグしようとしましたが、これが見つかりました。
>>> from sdm.models import Document
>>> Document.objects.all()
[<Document: Document object>, <Document: Document object>, <Document: Document
object>,<Document: Document object>, <Document: Document object>, <Document: Document
object>,<Document: Document object>, <Document: Document object>, <Document: Document
object>,<Document: Document object>, <Document: Document object>, <Document: Document
object>,<Document: Document object>, <Document: Document object>, <Document: Document
object>]
実物を見る方法がわからない??
ありがとう
編集: 回答とコメントで指摘されているように、アップロードされたフォルダーからファイルを直接削除していることをお伝えしたいと思います。ファイルがフォルダに存在しない場合、ORM オブジェクトを強制的に自動更新する方法はありますか