2010-08-13 22 views
0

Je semble être coincé et je ne sais pas quelle est la meilleure direction à prendre.Django jQuery vues user question

J'ai quelques applications dans mon projet et j'aimerais combiner trois vues dans un même modèle.

J'ai un userprofile dans lequel je voudrais afficher ses informations , les dernières nouvelles RSS et aussi ses les photos

Grâce à cela, je me sers de onglets jQuery

Je défini mes trois onglets sur que l'on appelle une div régulière et les deux autres sont urls qui s'appelé.

<a href="wall/recent">wall</a> et <a href="photos/recent">photos</a>

la barre d'adresse lit ce qui suit lors d'un profil utilisateur http://localhost:8000/profiles/profile_name/

dans mon views.py pour wall et photos se présente comme suit

@login_required 
def index(request, template_name='wall/_index.html'): 
    photos = Photos.objects.filter(user=request.user).order_by('-id') 
    context = { 'photos': photos, } 

    return render_to_response(template_name, context, 
     context_instance=RequestContext(request)) 

Mais si je regarde alors à mon profil, il est très bien , mais chaque fois que je passe à un autre profil d'utilisateur, il semble que certaines de mes informations apparaissent.

Je sais que request.user regarde l'utilisateur connecté, comment puis-je obtenir cet utilisateur dans la barre d'adresse et le transmettre de sorte qu'il affiche l'information correcte ie si profile_name = john affiche alors des photos de john, mur récent articles etc.

Répondre

2

Si vous avez un urls.py comme celui-ci:

urlpatterns = patterns('', 
         (r'^profiles/(?P<prof_name>[A-Za-z0-9\-_]+)/$', 'appname.views.index')) 

Ensuite, votre code de la vue peuvent être modifiés comme suit:

@login_required 
def index(request, prof_name, template_name='wall/_index.html'): 
    photos = Photos.objects.filter(user__username=prof_name).order_by('-id') 
    context = { 'photos': photos, } 

    return render_to_response(template_name, context, 
     context_instance=RequestContext(request)) 

Ce que cela fait est de lier le nom prof_name à n'importe quelle valeur dans le bit de l'URL après profiles/ et avant la finale /. Compte tenu de l'URL /profiles/john/, la vue index est appelée, prof_name étant définie sur john.

+0

hey. merci pour l'info cela fonctionne comme ça – ApPeL

+0

@ApPeL - super, merci d'avoir accepté ma réponse - cela vous dérangerait-il aussi? –