Ответ статическим файлом в программе просмотра - PullRequest
0 голосов
/ 28 июля 2011

Я занимаюсь разработкой приложения django с использованием Apache + wsgi_mod.Я определил простой просмотрщик , возвращающий изображение пользователя.Но если у пользователя нет изображения, я хочу отобразить стандартное статическое изображение (в зависимости от пола), хранящееся в моей папке static .Я знаю, что мог бы использовать static.serve (), но документация django отговаривает это. Как обслуживать статический файл из программы просмотра?

ОБНОВЛЕНИЕ:

Программа просмотра - это метод, определенный в views.py (ниже приведено img)

Я мог бы хотеть возвратить HttpResponseRedirect () к моему статическому содержанию.Но тогда мне нужен абсолютный URL.

Мне это нужно, потому что у меня есть что-то вроде этого:

def img(request, usr_id):
    usr_image = get_usr_image(usr_id)
    if usr_image == None:
        return respond_with_standard_image()
    else:
        response = HttpResponse(mimetype='image/jpg')
        response.write(usr_image)
        return response

и я хочу ответить стандартным образом пользователя.

ОБНОВЛЕНИЕ2:

Я могу сделать что-то подобное:

return HttpResponseRedirect('http://' + request.get_host() + settings.STATIC_URL + 'img/125px-Silver_-_male.png')

но я не удовлетворен.

1 Ответ

0 голосов
/ 28 июля 2011

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

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

...