Django загрузка изображений - PullRequest
1 голос
/ 30 августа 2011

У меня проблема с загрузкой изображений. На данный момент выбранный файл изображения не копируется в целевой каталог, и путь к этому файлу не добавляется в базу данных.

Я даю свой код ниже:

models.py:

from django.db import models
from django.contrib.auth.models import User

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    avatar = models.ImageField(upload_to="avatar/")

form.py

class ProfileEditionForm(ModelForm):
    class Meta:
        model = UserProfile
        exclude = ('user')

view.py:

def index(request):
    if request.user.is_authenticated():
        user = User.objects.get(pk=request.user.id)

        if request.method == "POST":
            form = ProfileEditionForm(request.POST, request.FILES, instance=user)

            if form.is_valid():
                form.save()
                #return HttpResponseRedirect(reverse('profile_edit'))
        else:
            form = ProfileEditionForm(instance=user)

        return direct_to_template(request, 'profile_edit.html', { 'form' : form })
    else:
        return HttpResponseRedirect(reverse('main_page'))

Заранее спасибо за помощь.

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

https://docs.djangoproject.com/en/dev/topics/http/file-uploads/

ваша форма должна иметь enctype = "multipart / form-data" или request.FILES не будет иметь никакого связанного потока данных

1 голос
/ 31 августа 2011

ваша ModelForm привязана к модели UserProfile, но вы создаете ее экземпляр с помощью instance = user.

PS: request.user is User.objects.get (pk = request.user.id)

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