Django ImageField: файлы не загружаются - PullRequest
1 голос
/ 20 октября 2010

Я реализовал некоторые ImageFields в моей модели и установил PIL (не самая чистая установка). Кажется, все работает, когда я получаю кнопку загрузки в администраторе, и когда я вызываю свойство .url в представлении, я получаю строку с именем файла + его свойством загрузки. Проблема в том, что файла нет, очевидно, он не загружается после сохранения модели.

Есть идеи?

Спасибо

Вот пример моей ситуации с кодом

models.py

class My_Model(models.Model):
[...]
     image = models.ImageField(upload_to = 'images/my_models/main')

view.py

'image': query.my_model.image.url

результат:

static/images/my_models/main/theimage.png

1 Ответ

1 голос
/ 21 октября 2010

Убедитесь, что вы связываете request.FILES с формой при отправке и что форма объявлена ​​в шаблоне как составная часть

Вот представление одного из моих приложений:

@login_required
def submit(request):
    if request.method == 'POST':
        (Photo.objects.count()+1, request.FILES['photo'].name.split(".")[1]), request.FILES['photo'])}
        form = PhotoForm(request.POST, request.FILES)
        if form.is_valid():
            new = Photo(photo=request.FILES['photo'], name=request.POST['name'])
            new.save()          
            return HttpResponseRedirect('/') # Redirect after POST
    else:
        form = PhotoForm()
    return render_to_response('app/submit.html', {'form': form}, context_instance=RequestContext(request))

и класс PhotoForm:

class PhotoForm(forms.ModelForm):
    class Meta:
        model = Photo
        fields = ('name', 'photo')
...