Загрузка файлов Django и FileField модели - PullRequest
6 голосов
/ 05 июля 2010

Я ооочень близок ... но я не вижу связи между представлением загрузки и моделью.Когда я использую обратный вызов в FileField модели, загрузка работает, но Я не уверен, где происходит фактическое копирование файла. Цель состоит в том, чтобы убедиться, что chunking происходит, нодействие копирования файла где-то скрыто?

Вот что у меня есть:

Модель:

def get_media_upload_dir(instance, filename):
    user_id  = instance.user.id
    upload_dir = "%s/%d/%s" % (settings.MEDIA_ROOT, user_id, filename)
    print "Upload dir set to: %s" % upload_dir
    return upload_dir

class MediaFile(models.Model):
    media_file     = models.FileField(upload_to=get_media_upload_dir)
    download_count = models.PositiveIntegerField(default=0)

Просмотр:

def file_upload(request, course_id):    
    if request.method == 'POST':
        form = FileUploadForm(request.POST, request.FILES)
        if form.is_valid():
            uploaded = form.cleaned_data['file_upload']
            mediaFile = MediaFile(media_file=uploaded,
                                owner=request.user.profile,
                                creator=request.user.profile)
            mediaFile.save()

            return HttpResponseRedirect('/course/%s/' % course_id)
    else:
        form = FileUploadForm()
    return render_to_response('course/file_upload.html', {'form':form,'course':course}, context_instance=RequestContext(request))

1 Ответ

1 голос
/ 06 июля 2010

Хранение происходит здесь: http://code.djangoproject.com/browser/django/trunk/django/db/models/fields/files.py#L90. Django использует свой собственный API для доступа к хранилищу файлов: http://docs.djangoproject.com/en/dev/ref/files/storage/. Но если вам нужна порция, вы можете воспользоваться предложением Bartek!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...