Проблема перенаправления URl в Джанго 2 - PullRequest
0 голосов
/ 25 ноября 2018

Я новичок в Django и пытаюсь создать веб-приложение со следующей структурой.Мне нужна ваша помощь, чтобы понять, что я делаю не так.

enter image description here

Поток приложения shadesProductUploader.urls forward ''to authSection для входа в систему и после успешного входа в систему пользователь должен быть перенаправлен на mainSection' home / '.

Файлы Urls.py имеют значение

shadesProductUploader.urls

 from django.contrib import admin
 from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('authSection.urls')),

]

authSection.urls

from django.contrib import admin
from django.urls import path, include
from . import views

app_name = 'authSection'

urlpatterns = [
path('', views.login_view, name='login'),
]

mainSection.urls

from django.contrib import admin
from django.urls import path,include
from . import views

app_name = 'mainSection'

urlpatterns = [
path('home/', views.home),
]

и view.py в authSection

def login_view(request):
next = request.GET.get('next')
form = userLoginForm(request.POST or None)
if form.is_valid():
    username = form.cleaned_data.get('username')
    password = form.cleaned_data.get('password')
    user = authenticate(username=username,password=password)
    login(request,user)
    if next:
        return redirect(next)
    context={'user':user}
    return redirect('home/')
return render(request, 'login.html', {'form': form})

после успешного входа в систему я получаю эту ошибку.

enter image description here

Чего мне не хватает?Не уверен, почему я вижу URL дома / дома /

1 Ответ

0 голосов
/ 25 ноября 2018

Обновите URL основного раздела shadesProductUploader следующим образом:

urlpatterns = [
        path('',include('mainSection.urls')),
        ... # other urls
    ]

И измените URL основного раздела следующим образом:

urlpatterns = [
    path('home/', views.home, name="home"),  # <-- added name here
]

И, видимо, используйте его следующим образом:

if next:
    return redirect(next)
context={'user':user}
return redirect(reverse('home'))

Здесь мы имеем с именем , наш URL-адрес как home.И мы получили URL, используя reverse .

...