如何在 Django 项目中使用 URL 中的用户名,如 facebook 和 twitter?
How to use username in URL like facebook and twitter in Django project?
我正在做 django 项目。我有点学习它。所以我的项目有用户登录注销功能,我也想添加基于配置文件的用户管理系统。所以我想做的是,如果有人试图访问这个 link,我想显示用户个人资料
siteURL/username
所以我项目的 urls.py 文件有这些代码,
urlpatterns = [
# url(r'^admin/', include(admin.site.urls)),
# Robots.txt request
url(r'^robots.txt', TemplateView.as_view(template_name="robots.txt", content_type="text/plain")),
# Profile related requests
url(r'^$', include('UserProfile.urls')),
# Home page request
url(r'^$', include('Homepage.urls')),
# Accounts related requests
url(r'^accounts/', include('Accounts.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
# handling error requests for 403, 404, 500 etc
handler404 = 'errorPages.views.error404'
handler500 = 'errorPages.views.error500'
我的 UserProfile 应用有 url.py 文件和代码,
urlpatterns = [
# User Profile related requests
url(r'^(?P<uname>.+?)/update$', User_Profile_Update.as_view()),
]
我的 class 文件的代码是,
class HC_User_Profile_Update(TemplateView):
def get(self, request, *args, **kwargs):
return render(request, "user_profile/profile_update.html"),
我的主页应用有 urls.py 文件和代码,
urlpatterns = [
#Home page request
url(r'^$', HomePage.as_view()),
]
和主页class文件,
class HomePage(TemplateView):
def get(self, request):
if request.user.is_authenticated():
return render(request, "homepage/home.html", {'uname': request.user.uname})
else:
return render(request, "homepage/home.html")
我收到 Url 未找到的 404 错误。所以谁能告诉我我的 url 有什么问题吗?现在,我只想检查 url 是否呈现 html 页面。 url 我现在尝试访问的是
sitename/username/update
感谢您的宝贵时间。
尝试从项目的 urls.py 文件中删除 $。将您的 urls.py 文件更新为
urlpatterns = [
# url(r'^admin/', include(admin.site.urls)),
# Robots.txt request
url(r'^robots.txt', TemplateView.as_view(template_name="robots.txt", content_type="text/plain")),
# Profile related requests
url(r'^', include('UserProfile.urls')),
# Home page request
url(r'^$', include('Homepage.urls')),
# Accounts related requests
url(r'^accounts/', include('Accounts.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
# handling error requests for 403, 404, 500 etc
handler404 = 'errorPages.views.error404'
handler500 = 'errorPages.views.error500'
希望它能奏效。
我正在做 django 项目。我有点学习它。所以我的项目有用户登录注销功能,我也想添加基于配置文件的用户管理系统。所以我想做的是,如果有人试图访问这个 link,我想显示用户个人资料
siteURL/username
所以我项目的 urls.py 文件有这些代码,
urlpatterns = [
# url(r'^admin/', include(admin.site.urls)),
# Robots.txt request
url(r'^robots.txt', TemplateView.as_view(template_name="robots.txt", content_type="text/plain")),
# Profile related requests
url(r'^$', include('UserProfile.urls')),
# Home page request
url(r'^$', include('Homepage.urls')),
# Accounts related requests
url(r'^accounts/', include('Accounts.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
# handling error requests for 403, 404, 500 etc
handler404 = 'errorPages.views.error404'
handler500 = 'errorPages.views.error500'
我的 UserProfile 应用有 url.py 文件和代码,
urlpatterns = [
# User Profile related requests
url(r'^(?P<uname>.+?)/update$', User_Profile_Update.as_view()),
]
我的 class 文件的代码是,
class HC_User_Profile_Update(TemplateView):
def get(self, request, *args, **kwargs):
return render(request, "user_profile/profile_update.html"),
我的主页应用有 urls.py 文件和代码,
urlpatterns = [
#Home page request
url(r'^$', HomePage.as_view()),
]
和主页class文件,
class HomePage(TemplateView):
def get(self, request):
if request.user.is_authenticated():
return render(request, "homepage/home.html", {'uname': request.user.uname})
else:
return render(request, "homepage/home.html")
我收到 Url 未找到的 404 错误。所以谁能告诉我我的 url 有什么问题吗?现在,我只想检查 url 是否呈现 html 页面。 url 我现在尝试访问的是
sitename/username/update
感谢您的宝贵时间。
尝试从项目的 urls.py 文件中删除 $。将您的 urls.py 文件更新为
urlpatterns = [
# url(r'^admin/', include(admin.site.urls)),
# Robots.txt request
url(r'^robots.txt', TemplateView.as_view(template_name="robots.txt", content_type="text/plain")),
# Profile related requests
url(r'^', include('UserProfile.urls')),
# Home page request
url(r'^$', include('Homepage.urls')),
# Accounts related requests
url(r'^accounts/', include('Accounts.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
# handling error requests for 403, 404, 500 etc
handler404 = 'errorPages.views.error404'
handler500 = 'errorPages.views.error500'
希望它能奏效。