проверить FileFiled URL в Django - PullRequest
       0

проверить FileFiled URL в Django

0 голосов
/ 29 января 2012

У меня есть вид загрузки:

views.py

def upload(request):

     if request.method == 'POST':
            form = DocumentForm(request.POST, request.FILES)
            if form.is_valid():
                newdoc = Document(docfile = request.FILES['docfile'])
                newdoc.save()

                # Redirect to the document list after POST
                return HttpResponseRedirect(reverse('wiki.views.upload'))
        else:
            form = DocumentForm() # A empty, unbound form

        # Load documents for the list page
        documents = Document.objects.all()

        return render_to_response(
            'wiki/upload.html',
            {'documents': documents, 'form': form},
            context_instance=RequestContext(request)
        )

и мой шаблон upload.html

{%extends "base.html"%}

{%block title%}Upload Documents{%endblock%}

{%block content%}
    <!-- List of uploaded documents -->
    {% if documents %}
        <ul>
        {% for document in documents %}
            <a href="{{ document.docfile.url }}">{{ document.docfile.name }}</a>
        {% endfor %}
        </ul>
    {% else %}
        <p>No documents.</p>
    {% endif %}

    <!-- Upload form. Note enctype attribute! -->
    <form action="{% url upload %}" method="post" enctype="multipart/form-data">
        {% csrf_token %}
        {{ form.non_field_errors }}
        {{ form.docfile.help_text }}
        {{ form.docfile.label_tag }}
        {{ form.docfile.errors }}
        {{ form.docfile }}
        <input type="submit" value="Upload" />
    </form>

{%endblock%}

Я загружаю некоторые файлы по указанному адресурасположение под {MEDIA_ROOT}, и оно отображается на сервере, но если я удаляю файл из этой папки, имя файла все равно отображается на веб-странице.

Как проверить и затем отобразить загруженный файл, используя мой шаблон.

Ответы [ 2 ]

0 голосов
/ 30 января 2012

Обратной ссылки из файловой системы на django нет - если вы загрузите файл в каталог, новая запись не будет добавлена ​​в базу данных, и аналогично, если вы удалите файл из каталога, запись не будет удален из базы данных.

Если вы удаляете файл с сервера, вам необходимо удалить и эту запись из базы данных. Это позволит синхронизировать список файлов с тем, что фактически доступно на сервере.

0 голосов
/ 29 января 2012

В представлении или в теге шаблона вы можете иметь следующий код.f это файл

try:
    exists_file = f.size()
except IOError:
    exists_file = False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...