Django: принуждение к Unicode найдено - PullRequest
2 голосов
/ 30 августа 2011

Я использую django-stdimage2 для переименования и изменения размера изображений в моем проекте.Он имеет возможность удалять изображения через интерфейс администратора Django: просто установите флажок и нажмите Сохранить.

Я могу успешно добавить изображение с помощью администратора Django, но когда я пытаюсь удалить изображение, эта ошибкавозвращено:

Сообщение об ошибке

Ошибка типа в / admin / app / gear_images / 1 /
приведение в Unicode: нужна строка или буфер, NoneType найден

Модель

class gear_images(models.Model):
    def __unicode__(self):
        return self.image.name

    gear_id = models.ForeignKey(gear)
    image = StdImageField(upload_to='images/gear', blank=True, size=(640, 480, True), thumbnail_size=(100, 100, True))
    description = models.CharField(max_length=100)

Возможная причина

Я предполагаю, что возвращается ошибка, поскольку изображение уже было удалено из базы данных,поэтому возвращать нечего.

Исправить?

Как правильно кодировать эту ситуацию?

Редактировать: Решение найдено.Спасибо, Ванесса!

def __unicode__(self):
    if self.image is None:
        return "None"
    elif self.image.name is None:
        return "None"
    else:
        return self.image.name

Спасибо: -)

1 Ответ

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

Поскольку изображения там нет, он пытается преобразовать «None» (элемент NULL) в Unicode, что не сработает. Вы можете проверить это с:

def __unicode(self)__:
    if self.image is None:
        return "None"
    else:
        return self.image.name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...