пятница, 17 января 2014 г.

Bad request (400) при сохранении модели с изображением в Django

Иногда при попытке сохранения модели в админке Django может возникнуть ошибка Bad request (400). Рассмотрим пример такой модели:
class Category(models.Model):
    """ Категория товара. Например, Куртки, Пальто """
    title = models.CharField(max_length=100, verbose_name='Название')
    image = models.ImageField(upload_to='/images/category')
    slug = models.SlugField(verbose_name=u'Псевдоним для url')
    section = models.ManyToManyField(Section, verbose_name=u'Раздел сайта')
    description = models.TextField(verbose_name='Описание')

    def __unicode__(self):
        return self.title

    class Meta:
        verbose_name = 'Категория'
        verbose_name_plural = 'Категории'
Ошибка возникла из-за неверного указания пути для сохранения загружаемого файла.
В данном случае нужно было указать:
image = models.ImageField(upload_to='images/category')