Улитка в Djnago URL
Я хочу создать каталог типа mysite.com/user после того, как пользователь войдет в систему. Т.е. mysite.com/john
Здесь представлены соответствующие виды и urlpatterns.
Но после авторизации у меня осталось только http://127.0.0.1:8000/authorization вместо http://127.0.0.1:8000/user?
models.py
user = models.ForeignKey('auth.User', on_delete=models.CASCADE, null = True)
project/urls.py
urlpatterns = [
path('authorization/', include('authorization.urls')),
]
authorization/app/urls.py
urlpatterns = [
path('', views.index, name='index'),
path('<slug:user>/', views.user_name, name='user_name'), # here
path('twitter_login/', views.twitter_login, name='twitter_login'),
path('twitter_callback/', views.twitter_callback, name='twitter_callback'),
path('twitter_logout/', views.twitter_logout, name='twitter_logout'),
]
соответствующий views.py для этого имени пользователя
@login_required
@twitter_login_required
def user_name(request, user):
user = TwitterUser.objects.get(user=user)
return render(request, 'authorization/home.html', {'user':user})
В settings.py у вас есть ключ LOGIN_REDIRECT_URL, который указывает место, куда он будет перенаправлен. Вы можете перенаправить его в какое-нибудь место, например:
LOGIN_REDIRECT_URL = '/authenticated/'
И создайте представление, которое перенаправляет с autheticated на правильный slug
@login_required
@twitter_login_required
def authenticated(request, user):
username = request.user.username
return redirect('/%s'%(username,))
Другие варианты: django LOGIN_REDIRECT_URL с динамическим значением