Реверс для 'ошибка на странице регистрации - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь создать учетную запись пользователя, и все хорошо, когда я использую представление регистрации и форму для регистрации на странице HTML регистрации ниже, это некоторая информация, но я получаю эту ошибку

NoReverseMatch в / signup / Reverse для '' не найден. '' это не допустимая функция просмотра или имя шаблона. Метод запроса: запрос POST URL: http://127.0.0.1:8000/signup/ Django Версия: 2.1.7 Исключение Тип: NoReverseMatch Исключение Значение: Обратное для '' не найдено. '' это не допустимая функция просмотра или имя шаблона. исключение Расположение: C: \ WINDOWS \ system32 \ dev \ pastebinclonedirectory \ lib \ site-packages \ django \ urls \ resolvers.py в _reverse_with_prefix, строка 622 Python Исполняемый файл: C: \ WINDOWS \ system32 \ dev \ pastebinclonedirectory \ Scripts \ python.exe Версия Python: 3.6.8 Путь к Python:
[ 'C: \ WINDOWS \ system32 \ DEV \ pastebinclonedirectory \ Pastebin', 'C: \ WINDOWS \ system32 \ DEV \ pastebinclonedirectory \ Scripts \ python36.zip', 'C: \ WINDOWS \ system32 \ DEV \ pastebinclonedirectory \ DLL файлы', 'C: \ WINDOWS \ system32 \ DEV \ pastebinclonedirectory \ Lib', 'C: \ WINDOWS \ system32 \ DEV \ pastebinclonedirectory \ Scripts', 'C: \ Users \ aadeo \ AppData \ Local \ Программы \ питон \ python36 \ Lib', 'C: \ Users \ aadeo \ AppData \ Local \ Программы \ питон \ python36 \ DLL файлы', 'C: \ WINDOWS \ system32 \ DEV \ pastebinclonedirectory', 'C: \ WINDOWS \ system32 \ DEV \ pastebinclonedirectory \ Lib \ сайт-пакетов'] Время сервера: ср., 13 марта 2019 г. 06:46:57 + 0000

view.py

def signup(request):
    if request.method == 'POST':
        form = UserRegisterForm(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(request,'app/index.html')
    else:
        form = UserRegisterForm()
    return render(request, 'app/signup.html', {'form': form})

forms.py

from django import forms
from .models import Post
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User

class Userpostform(forms.ModelForm):
    class Meta:
        model = Post
        fields = ('title','content','private',)




class Visitorpostform(forms.ModelForm):
    class Meta:
        model = Post
        fields = ('title','content')

urls.py в папке приложений

path('',views.home,name='home'),
path('accounts/', include('django.contrib.auth.urls'),name='login'),
path('signup/',views.signup,name='signup'),
path('accounts/profile/',views.profile,name='profile'),
path('logout',views.logout_view,name='logout'),
path('userpostnew', views.userpostnew, name='userpostnew'),
path('visitorpostnew', views.visitorpostnew, name='visitorpostnew'),

Ответы [ 2 ]

1 голос
/ 13 марта 2019

вы не можете добавить html для перенаправления таким образом,

либо использовать render как этот

return render(request,'app/index.html')

или

return redirect('profile') #use name of a view declared in url to redirect to that specific page
0 голосов
/ 13 марта 2019

Вы не добавили reverse() в redirect

используйте это так

from django.urls import reverse
    def signup(request):
        if request.method == 'POST':
            form = UserRegisterForm(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(reverse('home'))
        else:
            form = UserRegisterForm()
        return render(request, 'app/signup.html', {'form': form})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...