Загрузка файлов Django - PullRequest
0 голосов
/ 24 июня 2011

Я смотрю на этот фрагмент Джанго: http://djangosnippets.org/snippets/1036/#c3564

мой код:

    def handle_uploads(request, key):
        saved=[]

        upload_dir = settings.UPLOAD_PATH % request.user.username
        upload_full_path =os.path.join(settings.MEDIA_ROOT, upload_dir)

        if not os.path.exists(upload_full_path):
            os.makedirs(upload_full_path)

        for key in keys:
            if key in request.FILES:
                upload = request.FILES[key]
                while os.path.exists(os.path.join(upload_full_path, upload.name)):
                    if (request.user.username not in upload.name) and (request.user.first_name not in upload.name):
                        upload.name = request.user.username + "_" + upload.name
                dest = open(os.path.join(upload_full_path, upload.name), 'wb')
                for chunk in upload.chunks():
                    dest.write(chunk)
                dest.close()
                saved.append((key, os.path.join(upload_dir, upload.name)) )
        return saved

    def upload_view(request):
        user = request.user
        if user.is_authenticated():
            if request.method == 'POST':
                form =upload_form(request.POST, request.FILES)
                if form.is_valid():
                    saved_file = handle_uploads(request, ?)

в приведенном примере они загружают изображения. Что я должен поставить здесь, если я хочу загрузить документы MS Word? Также в этом примере они ссылаются на модель с именем MyModel (), как эта модель будет выглядеть для документов msword. Я хочу, чтобы мой сайт работал, чтобы каждый пользователь мог просматривать свои загруженные документы. И затем, если им нужно, они могут снова загрузить эти документы. Чтобы приписать документы каждому пользователю, должен ли я добавить его в свой расширенный класс user_field? И если я это сделаю, то будет ли модель, называемая в этом примере «MyModel», просто расширять поле пользователя? Кроме того, как настроить загрузку файлов? Я не видел в документах ничего об этом.

Спасибо.

1 Ответ

1 голос
/ 24 июня 2011

Посмотрите документацию Django для загрузки файлов , тип поля FileField модели и формы Django FileField тип поля.

Возможно, вы захотите определить модель для представления загруженного файла:

#in your models file
from django.contrib.auth.models import User

class UploadedFile(models.Model):
    user = models.ForeignKey(User)
    file = models.FileField(upload_to='myfiles/')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...