1

django にファイルをアップロードできます。また、さまざまなユーザーを登録することもできました。しかし、ユーザーがログインすると、だれかがアップロードした一連のファイルが表示されます。代わりに、ユーザーがアップロードしたファイルのセットのみをユーザーに表示してもらいます。

これが私のmodels.pyです

class Document(models.Model):
    docfile = models.FileField(upload_to='documents/%Y/%m/%d')

ビュー.py

def list(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 HttpResponse("File Uploaded.. Kindly Refresh!!")
    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(
        'login/list.html',
        {'documents': documents, 'form': form},
        context_instance=RequestContext(request)
    )

リスト.html

 <table cellpadding=20>
    {% for document in documents %}
        <tr>
            <td><a href="{{ document.docfile.url }}">{{ document.docfile.name }}</a> </td>
            <td></td>
            <td></td>
            <td><a href="delete/{{ document.docfile.name }}"> Delete</a></td>

        </tr>
    {% endfor %}
    </table>

  {% else %}
    <p>No documents.</p>
  {% endif %}
4

1 に答える 1

4

models.py をこれに変更します

from django.contrib.auth.models import User
class Document(models.Model):
    docfile = models.FileField(upload_to='documents/%Y/%m/%d')
    user = models.ForeignKey(User)

views.py をこれに変更します

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

            # Redirect to the document list after POST
            return HttpResponse("File Uploaded.. Kindly Refresh!!")
    else:
        form = DocumentForm() # A empty, unbound form

    # Load documents for the list page
    documents = Document.objects.filter(user=request.user)

    # Render list page with the documents and the form
    return render_to_response(
        'login/list.html',
        {'documents': documents, 'form': form},
        context_instance=RequestContext(request)
    )
于 2013-06-25T14:38:17.060 に答える