2014-09-04 2 views
3

Я пытаюсь загрузить изображения с моих моделей.django: Не удалось загрузить изображение

поля формы

image_id = forms.CharField(widget=forms.HiddenInput(), required=False) 
image = forms.FileField(label = 'Select a Profile Image') 

подсобные

def get_user(self): 
    users = User.objects.all() 
    data ={'users':users} 
    return data 

просмотров

template_name= '/profile.html' 
def get(self,request, *args, **kwargs): 
    data = self.get_context_data(*args, **kwargs) 
    data.update({'user_detail':self.get_user(request.user)}) 
    return self.render_to_response(data) 

настройки

MEDIA_URL = '/media/' 
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/') 

шаблоны

<center> 
<img src="{{user_detail.profile_image.image}}" height="150px" width="150px"> 
</center> 

Я не получаю изображение на странице.

+0

ли это загруженное на сервере? – jedema

+0

изображение сохраняется в базе данных, но не загружается на страницу, в brower inceptor его показывает полный путь изображения, но не загружается на страницу. –

+0

Загружаются ваши другие статические файлы или нет? – jedema

ответ

0

Оба медиа-файлов (те, загруженные пользователем) и статические файлы (изображения, CSS, JS используется ваш сайт) должен быть сервер с помощью веб-сервера, как Apache, Nginx и т.д.

Джанго не делает магии здесь, и вы несете ответственность за правильную настройку своего веб-сервера для обслуживания этих файлов.

Например, говорят, что вы настроили Django, как это:

STATIC_URL = '/static' 
STATIC_ROOT = '/var/www/mywebsite/static' 

MEDIA_URL = '/media' 
MEDIA_ROOT = '/var/www/mywebsite/media' 

Вы должны быть настроены на веб-сервер для обслуживания файлов из этих каталогов * _root в URL, идентифицированных * _url переменных. В Apache вы можете использовать две директивы, как эти:

Alias /media /var/www/mywebsite/media 
Alias /static /var/www/mywebsite/static 

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

Также я бы предложил использовать ImageField вместо FileField, если файл для загрузки - это изображение.

Затем в шаблоне вы можете написать что-то вроде этого, чтобы иметь полный URL к изображению:

<img src="{{user_detail.profile_image.image.url}}" height="150px" width="150px"> 
Смежные вопросы