Итак, я создаю довольно простой сайт, который позволяет пользователям создавать и редактировать профили. Я нахожусь в процессе создания URL-адрес для сайта, которые следуют следующим «правилам»:URL-адреса маршрутизации в структуре Django
www.website.com
должен перенаправлять на дом.www.website.com/profile/person
должен перенаправить на профильperson
.www.website.com/profile/person/extra/useless/info
должен перенаправить на профильperson
, так как URL-адрес должен быть «обрезан» послеprofile/person/
.www.website.com/profile
следует перенаправить обратно наwww.website.com
, который будет перенаправлен на главную.
Мой код до сих пор выглядит следующим образом.
# my_site/urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^$', include('my_app.urls')),
url(r'^profile/', include('my_app.urls')),
url(r'^admin/', include(admin.site.urls)),
]
Часть 2:
# my_app/urls.py
from django.conf.urls import url
from django.http import HttpResponse
from . import views
urlpatterns = [
url(r'^(?P<username>[\w-]*)/$', views.profile, name='profile'),
url(r'^(?P<username>[^\w-])/$', views.profile, name='profile'), # still link to the profile
url(r'^$', views.home, name="home"),
]
С помощью этого кода, когда пользователь вводит www.mysite.com/profile
, пользователь является перенаправлены на главную страницу, но в адресной строке еще читает www.mysite.com/profile
, что я не хотеть. Я хочу, чтобы он читал www.mysite.com
. Кроме того, третье правило в списке правил, которое я дал выше, не соблюдается. Я думал о том, что у меня есть функция очистки URL-адресов, которая обрезает нежелательные части URL-адреса, но я понятия не имею, как это сделать. Любая помощь будет принята с благодарностью.
спасибо.
Является ли "домашняя страница" так же, как страницы профиля? Я спрашиваю об этом, потому что вы указали все ваши url приложения на view.profile. Можете ли вы также опубликовать свои views.py? –
Я ошибаюсь. Я хотел указать на «views.home». Виноват. – Joe