あなたはurl
正規表現引数にユーザー名を渡すとrequest
クラスから要求ユーザを取得することができます。
ビュー:
def user_page(request, username):
try:
user = User.objects.get(username=username)
except User.DoesNotExists:
raise Http404
# or use shortcut get_object_or_404(User, username=username)
if request.user.username != user.username:
raise Http404
return render(request, 'templates/user_template', {'user':user})
のURL:
url(r'^(?<username>\w+)/page/$', views.user_page, name='user_page')
注:username
フィールドではない有効な選択肢、それならば一意ではなく、User.objects.get()
から複数のユーザーを取得するとエラーが発生します。ユーザページの参照のために、pk
フィールドの使用を改善する。
しかし、要求ユーザーのユーザーページを構築するための簡単な方法があります。キーワード引数なしでただ1つのURL、認証されたユーザのための応答データ:
ビュー:
def user_page(request):
user = None
if request.user.is_authenticated():
user = User.objects.get(pk=request.user.pk)
return render(request, 'templates/user_template', {'user': user})
のURL:今
url(r'^page/$', views.user_page, name='user_page')
ユーザーではない場合、それは要求ユーザまたはNone
に基づいてデータを返します認証されました
https://docs.djangoproject.com/ja/1.9/topics/http/urls/あなたのビューでURLパラメータを取得することができます。あなたはそこからそれを取ることができます。 – nightgaunt