Django Forms загружает изображение - данные формы работают, кроме изображения - PullRequest
0 голосов
/ 27 декабря 2011

Я пытаюсь заставить загрузку работать с Django.Я не получаю сообщение об ошибке при попытке загрузить его, и новый элемент сохраняется, но изображение отсутствует.Другие данные формы все там.Я гуглил и переполнял стек последние 2 дня и не могу найти решение.Я даже не знаю, где это идет не так!Любой совет был бы удивительным.Спасибо.:)

из views.py:

    if request.method == 'POST':
        form = ItemForm(request.POST, request.FILES, user=request.user, forsale=True)
        if form.is_valid():
            new_item = form.save()
            return item_view(request, marketplace_id, new_item.id)
    else:
        form = ItemForm(user=request.user)

из models.py:

class Item(models.Model):

    photo =  StdImageField(upload_to='images/', blank=True, size=(500, 500, True), thumbnail_size=(210, 150, True))

    user = models.ForeignKey(User)
    ...

    def __unicode__(self):
        return self.name

class ItemForm(ModelForm):
    class Meta:
        model = Item
        fields = ['name', 'description', 'price', 'shipping', 'photo', 'section']

    def __init__(self, *args, **kwargs):
        self._user = kwargs.pop('user')
        super(ItemForm, self).__init__(*args, **kwargs)

из шаблона:

    <form enctype="multipart/form-data" action="" method="post" data-ajax="false">{% csrf_token %}
            {% for field in form %}
                <div class="fieldWrapper" data-role="fieldcontain">
                    {{ field.errors }}
                    {{ field.label_tag }} {{ field }}
                </div>
            {% endfor %}

        <input type="submit" value="Save">
    </form> 

AsЯ вижу, шаблон правильный.Модель Item выглядит хорошо, StdImageField - это оболочка для ImageField.Работает нормально в админке.Форма, кажется, тоже хорошо, ничего особенного.В моем представлении views.py я проверяю запрос POST, вызываю ItemForm и передаю request.POST и request.FILES (и forsale, который является логическим).Я проверяю, является ли форма действительной, если да, я сохраняю ее.Почему это не работает?Элемент сохраняется, но в админ-панели нет файла, связанного с 'photo'.

1 Ответ

0 голосов
/ 29 декабря 2011

Убедитесь, что параметр MEDIA_ROOT, объединенный с «images /», является допустимым и записываемым путем для процесса Django.

Также с использованием pdb

import pdb; pdb.set_trace()

может помочь вам в поиске проблемы (например, посмотрите на запрос. ФАЙЛЫ, чтобы увидеть, все ли хорошо там во время публикации).

...