Одна и та же случайная запись на сайте - PullRequest
0 голосов
/ 31 мая 2011

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

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

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

Так что мое "индексное" представление может вызывать

bgimage = BackgroundImage.objects.random()

Но тогда у меня проблема. Как я могу получить эту случайную запись неизменной во всех других представлениях. Это возможно? Стоит ли смотреть сеансы, куки?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 31 мая 2011

вы можете использовать сессий - что-то вроде

if 'bgimage' not in request.session:
    bgimage = BackgroundImage.objects.random()
    request.session['bgimage'] = bgimage.pathtoimage
1 голос
/ 18 июня 2011

Контекстный процессор:

def bgimage(request):
    if 'bg_image' not in request.session:
        image = BackgroundImage.objects.random()
        request.session['bg_image'] = image.file
    return {'background_image' : request.session['image']}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...