Как загрузить ту же страницу после регистрации, используя django - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть этот код в view.py

def room(request, room_name):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=raw_password)
            login(request, user)
            return redirect('<str:room_name>/')
    else:
        form = UserCreationForm()

enter image description here

, и это мой url.py

path('<str:room_name>/', views.room, name='room'),

enter image description here

Как загрузить ту же страницу после регистрации, используя django

1 Ответ

0 голосов
/ 14 февраля 2020

Вам нужно передать некоторый URL в функцию redirect. Вы можете передать текущий путь к redirect, используя request.path:

def room(request, room_name):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=raw_password)
            login(request, user)
            return redirect(<b>request.path</b>)
    else:
        form = UserCreationForm()
        # return http response for get request.
        <b>return render(request, 'some_template.html', {})</b>

Далее читайте: Django документы по HttpRequest и redirect .

...