2011-05-31 2 views
0

Je construis un site Web qui montre un arrière-plan différent chaque fois qu'un utilisateur le saisit. Cet arrière-plan est ensuite utilisé sur le site Web avec le même utilisateur et la même session. Donc, fondamentalement, un utilisateur accède à la page d'accueil, obtient un arrière-plan et cette image ne changera pas jusqu'à ce que l'utilisateur ferme le site ou ouvre une nouvelle Page. Je pense que tu comprends ce que je veux dire. Je sais comment obtenir un enregistrement aléatoire de la base de données en utilisant Django, mais je ne suis pas sûr de savoir comment conserver cet enregistrement sur le site, car si je le tire sur chaque vue, j'obtiendrai une image différente sur différentes pages.Même enregistrement aléatoire sur le site Web

donc mon point de vue "index" pourrait être appeler

bgimage = BackgroundImage.objects.random() 

Mais j'ai un problème. Comment puis-je obtenir cet enregistrement aléatoire inchangé à travers toutes les autres vues. Est-ce possible? Dois-je regarder dans les sessions, les cookies?

Merci!

Répondre

1

processeur Contexte:

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']} 
+0

Merci Daniel! Je vois ce que je faisais de mal. Cela a résolu, merci :) –

3

vous pouvez utiliser sessions - quelque chose comme

if 'bgimage' not in request.session: 
    bgimage = BackgroundImage.objects.random() 
    request.session['bgimage'] = bgimage.pathtoimage 
+0

vous pouvez utiliser session côté serveur, ou vous pouvez enregistrer des infos sur image cookie et mettre CSS- appropriée classe, ou la propriété d'arrière-plan sur le côté client – shiberz

+0

Merci pour le conseil. Je vais essayer :) –

+0

Serais-je utiliser ce morceau de code sur chaque vue? –

Questions connexes