私はユーザーのためにかなり従来型の動的URLプロファイルページを作成しようとしています。だから例えば。 www.website.com/profile/(ユーザー名)Django:ユーザープロファイル用の動的URL
有効なユーザー名を入力すると、NoReverseMatchのエラーが発生します。その理由はわかりません。ここに私のコードのスニペット
urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^signup/$', accountsViews.signup, name="signup"),
url(r'^logout/$', authViews.LogoutView.as_view(), name='logout'),
url(r'^login/$', authViews.LoginView.as_view(template_name='login.html'), name="login"),
url(r'^find/$', findViews.find, name="find"),
# url(r'^profile/$', accountsViews.profile, name="profile"),
url(r'profile/(?P<username>.+)/$', accountsViews.profile, name="profile"),
url(r'^$', views.home, name="home"),]
views.py
def profile(request, username=None):
if User.objects.get(username=username):
user = User.objects.get(username=username)
return render(request, "profile.html", {
"user": user,
})
else:
return render("User not found")
htmlファイル
{% if user.is_authenticated %}
{% url 'profile' as profile_url %}
<li {% if request.get_full_path == profile_url %}class="active"{% endif %}><a href="{% url 'profile' %}"><span class="glyphicon glyphicon-user"></span> Profile </a></li>
<li><a href="{% url 'logout' %}"><span class="glyphicon glyphicon-log-out"></span> Log Out</a></li>
{% endif %}
Alがありますエラーメッセージは、 "{%url 'profile'%}"の部分をエラーとして強調表示しており、逆の一致がないと主張しています。しかし、私のurls.pyでは、私はname = "profile"を行ったことをはっきりと確認することができます
ご協力いただければ幸いです。ありがとうございました!
ビューで 'if'文が無意味です。 'get()'は値を返すか、例外を送出します。 –