После заполнения формы регистрации я хочу перенаправить свою страницу на страницу post_list моего блога. Но я получаю ошибку, как указано выше. Ниже мои разные файлы. account - приложение для управления учетными записями, а blog_app - приложение для управления другими действиями, связанными с блогами. Блог - это приложение root.
В блоге: urls.py:
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
from django.contrib.auth import views
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('blog_app.urls')),
url(r'^accounts/',include('accounts.urls')),
path('accounts/login/', views.LoginView.as_view(template_name='blog_app/login.html'),name='login'),
path('accounts/logout/',views.LogoutView.as_view(template_name='blog_app/base.html'),name='logout'),
]
В аккаунтах: views.py:
from django.shortcuts import render,redirect
from django.contrib.auth.forms import UserCreationForm
def signup_view(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
# log the user in
return redirect('blog_app:post_list')
else:
form = UserCreationForm()
return render(request,'accounts/signup.html',{'form':form})
urls.py:
from django.conf.urls import url
from .import views
app_name = 'accounts'
urlpatterns = [
url(r'^signup/$', views.signup_view, name = "signup"),
]
регистрация. html:
{% extends 'base.html' %}
{% block content %}
<h1>Signup</h1>
<form class="site-form" action="/accounts/signup/" method="POST">
{% csrf_token %}
{{ form }}
<input type="submit" value="Signup">
</form>
{% endblock %}
в blog_app: urls.py:
from django.conf.urls import url
from blog_app import views
from django.urls import path
app_name = 'blog_app'
urlpatterns = [
url(r'^$', views.PostListView.as_view(),name='post_list'),
url(r'^about/$', views.AboutView.as_view(),name='about'),
url(r'^post/(?P<pk>\d+)$', views.PostDetailView.as_view(),name='post_detail'),
url(r'^post/new/$', views.CreatePostView.as_view(),name='new_post'),
url(r'^post/(?P<pk>\d+)/edit/$', views.UpdatePostView.as_view(),name='edit_post'),
url(r'^drafts/$', views.DraftListView.as_view(),name='draft_post_list'),
url(r'^post/(?P<pk>\d+)/remove/$', views.DeletePostView.as_view(),name='delete_post'),
# url(r'^post/(?P<pk>\d+)/remove/$', views.post_remove,name='delete_post'),
url(r'^post/(?P<pk>\d+)/publish/$', views.post_publish, name='post_publish'),
url(r'^post/(?P<pk>\d+)/comment/$', views.add_comment_to_post, name='add_comment_to_post'),
url(r'^comment/(?P<pk>\d+)/approve/$', views.comment_approve, name='comment_approve'),
url(r'^comment/(?P<pk>\d+)/remove/$', views.comment_remove, name='comment_remove'),
# path('register/',views.register,name='register'),
]
post_list. html:
{% extends 'blog_app/base.html' %}
{% block content %}
<div class="centerstage">
{% for post in post_list %}
<div class="post">
<h1><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h1>
<p>{{ post.snippet }}</p>
<div class="date">
<p><b>Published on: </b> {{ post.publish_date|date:"D M Y"}}</p>
</div>
<a href="{% url 'post_detail' pk=post.pk %}">Comments: {{ post.approveComment.count }}</a>
</div>
{% endfor %}
</div>
{% endblock %}