タイトルにあるように、認証されているかどうかに関係なく、ユーザーがさまざまなユーザーのユーザー情報を取得する必要があります。
静的なユーザー情報 (パブリックの場合) または編集可能なユーザー情報 (所属するユーザーの場合) を表示するロジックを備えた「プロファイル」テンプレートがあります。
問題:テンプレートの条件が「true」を返します。ユーザー オブジェクトは認証されているように見えますが、そうではありません。そのページ(プロファイル)からナビゲートすると、ユーザーはログインしていません。
私はDjangoにかなり慣れていません。view.py で User オブジェクトを正しく取得していませんか?
ビュー.py
def GetProfileById(request, userid):
try:
user = User.objects.get(pk=userid)
except User.DoesNotExist:
return HttpResponseRedirect('/')
try:
user_profile = user.get_profile()
except Exception:
return HttpResponseRedirect('/')
context = {'user': user, 'user_profile': user_profile}
return render_to_response('profile.html', context, context_instance=RequestContext(request))
profile.html
{% if user.is_authenticated %}
<form id="form-about" class="form-horizontal" action="{% url update-user-profile %}" method="POST">
{% csrf_token %}
<p>{{ about_form.first_name }}</p>
<p>{{ about_form.last_name }}</p>
<p>{{ about_form.birthday }}</p>
<p>{{ about_form.profession }}</p>
<button class="btn btn-primary" type="submit">Save</button>
</form>
{% else %}
<p><b>Name:</b> {{ user.first_name }} {{ user.last_name }}</p>
<p><b>DOB:</b> {{ user_profile.birthday }}</p>
<p><b>Profession:</b> {{ user_profile.profession }}</p>
<p><b>Member since:</b> {{ user.date_joined|date:'Y-M-d' }}</p>
<p><b>Last login:</b> {{ user.last_login|date:'Y-M-d @ H:i' }}</p>
{% endif %}