0

なぜこの 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 オブジェクトを強制的に自動更新する方法はありますか

4

1 に答える 1