2017-03-26 12 views
0

ユーザーが他のユーザーをクリックして自分の投稿を編集せずにプロフィールにアクセスしてもらいたい。ここ他のユーザープロフィールを表示

def Profil(request, username): 
    if not request.user.is_authenticated(): 
     return render(request, 'blog/visitor.html') 
    else: 
     u = User.objects.get(username=username) 
     user = request.user 
     posts = Post.objects.filter(user=request.user) 
     context = {'user': user, 'user_url':u,'posts': posts} 
     return render(request, 'blog/profil.html', context) 

そして、私のIndexビュー

def IndexView(request): 
    if request.user.is_authenticated(): 
     base_template_name = 'blog/base.html' 
    else: 
     base_template_name = 'blog/visitor.html' 

    posts = Post.objects.all() 

    return render(request, 'blog/index.html', 
        {'posts':posts, 'base_template_name':base_template_name}) 

(他のソリューションが離れてこのありますか?)

私urls.py

:ここ

は私PROFIL図であります
url(r'^(?P<username>\w+)/$', views.Profil, name = 'profil'), 

およびli profil.htmlへのindex.htmlからのNKは次のようになります。

<a href="{% url 'blog:profil' user.username %}">{{post.user.username }}</a> 

私はそれは私がクリックしたユーザではなくログインよ、現在のユーザーに渡すリンクをクリックしたときこれで問題があります管理者と、それは

ログインおよび上アラさんのプロフィールを見てみたい:

Link from 'Ala' to his profil

私はそれがURLこの中で示しクリック:

http://127.0.0.1:8000/blog/imedadmin/これは 'imedadmin'の代わりに 'Ala'とされています。

+0

あなたはプロファイルリンクのログインユーザーのユーザー名を使用しています: '{%url 'blog:profil' user.username%}'。 'user'を、プロファイルをリンクしたい実際のユーザに置き換えてください。 – xyres

+0

私はそれを何と置き換えるのですか? – Imed

+0

リンクにユーザーの名前が表示されていますか?あなたは完全な '...'コードを表示できますか?または、インデックスビューを表示します。 – xyres

答えて

0

私の意見では、変数を送信してレンダリング関数で表示することができます。isHimと呼んでください。ユーザーがログインしている場合はtrue、そうでない場合はfalseに設定します。ビューでは、{{if isHim}}でチェックし、編集ボタンを有効/無効にします。私はそれを使用し、それは答えた。テンプレートディレクトリ内

{% if request.user.id == post.user.id %} 
# ur code {% endif %} 

+0

あなたは私のコードで、 – Imed

0

あなたのような何かを行うことができます。

関連する問題