Перенаправление после авторизации в django rest framework - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь перенаправить на конкретный URL после входа пользователя. Я использую встроенную аутентификацию пользователя django rest framework. Я пробовал следующий код:

В urls.py у меня есть следующее:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^register/$',views.CreateUserView.as_view(),name='user'),
    url(r'^api-auth/',include('rest_framework.urls',namespace='rest_framework')),
    url(r'^',include(router.urls)),
]

В settings.py я включил следующее:

LOGIN_REDIRECT_URL = '/task'

Я нахожусь на следующей странице 'localhost / register' и после создания пользователя и входа в систему он перенаправляет на ту же страницу 'localhost / register'. Как мне перенаправить на главную страницу? Я что-то пропустил?

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

В вашей views.py после регистрации вы должны redirect до login страницы или вашей home страницы.

def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            # REDIRECT here
            return redirect('login')
    else:
        form = UserRegisterForm()
    return render(request, 'users/register.html', {'form': form})

Также вы можете использовать перенаправление следующим образом:

<your_app>/urls.py

from . import views

app_name = 'your_app_name'

urlpatterns = [
    path('', views.index, name='index'),

в вашем settings.py добавьте LOGIN_REDIRECT_URL = '<your_app_name>:index'

0 голосов
/ 24 июня 2019

попробуйте этот вид входа в систему

from django.contrib.auth.forms import AuthenticationForm

def Login(request):
if request.method == 'POST':

    #AuthenticationForm_can_also_be_used__

    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(request, username=username, password=password)
    if user is not None:
        form = login(request,user)
        messages.success(request, f' wecome {username} !!')
        return redirect('index')
    else:
        messages.info(request, f'account done not exit plz sign in')
form = AuthenticationForm()
return render(request, 'user/login.html', {'form':form,'title':'log in'})

добавьте это в views.py и установите любое перенаправление, которое является частью моего проекта на тот случай, если вам понадобится полный файл ссылка

...