Я из PHP-фона, но мне предоставлен проект для администрирования Django, я перенес его на новый сервер под управлением Django 1.2.5 (Python2.6) и запустил все так же, как и наСтарый.Теперь мне поручено исправлять ошибки старых разработчиков.Пока все хорошо, но я наткнулся на камень преткновения с помощью ImageField.По сути, пользователь может загрузить логотип (это работает).Однако, когда пользователь без логотипа редактирует свои данные, Django выдает ошибку:
ValueError: The 'org_logo' attribute has no file associated with it.
Фрагмент кода, который приводит к ошибке:
user = request.user
org = user.organisation
if not checkLogoFile(org):
org.org_logo = ''
org.save()
Функция checkLogoFile выглядит следующим образом:
def checkLogoFile(org):
from os.path import exists
path = org.org_logo.path
if path:
file_name = path.split('/')[-1]
return exists(settings.MEDIA_ROOT+'logo/'+file_name)
return False
Насколько я понимаю, если checkLogoFile возвращает false, тогда значение org_logo будет строкой нулевой длины.Если org_logo содержит путь, то он возвращается.Как уже упоминалось, это не работает, когда логотип изображения не присутствует, но работает, когда он есть.: - /
Любые указатели были бы очень полезны, так как я искал Google и пока никуда не доберусь.