2013-04-11 2 views
1

у меня есть это поле изображения в моей моделиdjango - почему это не работает?

foto = models.ImageField(upload_to="user/%Y/%m/%d",default='') 

и в моих настройках:

MEDIA_ROOT = os.path.join(PROJECT_PATH, "media") 
MEDIA_URL = "/media/" 

и в моем шаблоне:

<img class="profilfoto" src="{{MEDIA_URL|escapejs}}{{user.foto.name}}" /> 

других изображений с upload_to='.' спасаемыми прямо в папка с носителями, но user папка не создается, почему это?

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

+0

ли сервер имеет доступ на запись в каталог средств массовой информации? –

+0

Имеется ли каталог пользователя? Каковы его разрешения? Получаете ли вы ошибку или исключение во время загрузки файла? – niconoe

+0

@MattWritesCode, я нахожусь в локальном dev. – doniyor

ответ

1

escapejs

ускользает символы для использования в строках JavaScript. Это не делает строку безопасной для использования в HTML, но защищает вас от синтаксических ошибок при использовании шаблонов для генерации JavaScript/JSON.

<img class="profilfoto" src="{{MEDIA_URL|escapejs}}{{user.foto.name}}" /> 

Ваши результаты выше кода, например: user/2013\u002D04\u002D10_170411/image.png, который дает вам 404 ошибка при загрузке изображения.

UPDATE:

при сохранении или обновлении изображения, вы должны определить ENCTYPE в форме. Это позволит сохранить изображение или файл:

<form id="registerform" action="/angemeldet/" method="post" 
    enctype="multipart/form-data"> 
    {% csrf_token %} 

И

form = YourForm(request.POST, request.FILES) 
    if form.is_valid(): 
-1

Попробуйте добавить косую черту в начале вашего аргумента в upload_to:

foto = models.ImageField(upload_to="/user/%Y/%m/%d",default='') 
+0

didnot help , :( – doniyor

+0

Это не поможет, он будет ссылаться на корневой каталог –

+1

, посмотрите, возможно, это может помочь: 'http://agopian.info/blog/django-filefield-et-imagefield-upload_to-et-shell- python.html' – Drwhite

Смежные вопросы