0

私は立ち往生しているようで、どちらが最善の方向かわかりません。

プロジェクトにいくつかのアプリがあり、3つのビューを1つのテンプレートに結合したいと思います。

彼の情報、最新のニュースフィード、および彼の写真を表示したいユーザープロファイルがあります

これを通して私はjQueryタブを利用しています

3つのタブを定義しました。そのうちの1つは通常のdivを呼び出し、他の2つは呼び出されるURLです。

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

ユーザープロファイルでは、アドレスバーに次のように表示されます http://localhost:8000/profiles/profile_name/

views.pyのためにwallそして photos次のように見えます

@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))

しかし、次に自分のプロファイルを見ると問題ありませんが、別のユーザープロファイルに切り替えると、情報の一部が表示されるように見えます。

request.userがログインしているユーザーを見ていることはわかっていますが、アドレスバーでそのユーザーを取得して渡すと、正しい情報が表示されます。つまり、profile_name= johnの場合、johnsの写真、最近の壁のアイテムなどが表示されます。

4

1 に答える 1

2

あなたがurls.pyこのようなものを持っているなら:

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

次に、ビューコードを次のように変更できます。

@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))

これは、finalの前後のprof_nameURLのビットにある値に名前をバインドします。URLを指定すると、ビューが呼び出され、に設定されます。profiles///profiles/john/indexprof_namejohn

于 2010-08-13T10:39:58.163 に答える