django - Django SyntaxError:无效的语法“else”语句?
问题描述
看在上帝的份上,我不明白为什么会出现这个错误,它看起来很简单,但我现在做了很多修改,不知道究竟是什么原因造成的:
(from Traceback):
File "C:\Users\Lucas Cyrne Ferreira\Desktop\django- tutorial\mysite\contas\urls.py", line 2, in <module>
from . import views
File "C:\Users\Lucas Cyrne Ferreira\Desktop\django-tutorial\mysite\contas\views.py", line 38
else:
^
SyntaxError:无效的语法
from django.shortcuts import render, redirect, HttpResponse
from contas.forms import (
RegistrationForm,
EditPerfilForm,
)
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserChangeForm, PasswordChangeForm
from django.contrib.auth import update_session_auth_hash
from django.contrib.auth.decorators import login_required
def home(request):
return render(request, 'contas/home.html')
def register(request):
if request.method=='POST':
form = RegistrationForm(request.POST)
if form.is_valid():
form.save()
return redirect(reverse('home:home'))
else:
form = RegistrationForm()
args = {'form':form}
return render(request, 'contas/reg_form.html', args)
def view_perfil(request):
args = {'user': request.user}
return render(request, 'contas/perfil.html', args)
def edit_perfil(request):
if request.method=='POST':
form = EditPerfilForm(request.POST, instance=request.user)
if form.is_valid():
form.save()
return redirect(reverse('home:perfil')
else:
form = EditPerfilForm(instance=request.user)
args = {'form':form}
return render(request, 'contas/edit_perfil.html', args)
def trocar_password(request):
if request.method=='POST':
form = PasswordChangeForm(data=request.POST, user=request.user)
if form.is_valid():
form.save()
update_session_auth_hash(request, form.user)
return redirect(reverse('home:perfil')
else:
return redirect(reverse('home:trocar_password'))
else:
form = PasswordChangeForm(user=request.user)
args = {'form': form}
return render(request, 'contas/trocar_password.html', args)
我的 contas\urls.py:
from django.urls import path
from . import views
from django.contrib.auth.views import (
login,
logout,
PasswordResetView,
PasswordResetDoneView,
PasswordResetConfirmView,
PasswordResetCompleteView,
)
app_name = 'contas'
urlpatterns = [
path('', views.home, name='home'),
path('login/', login, {'template_name': 'contas/login.html'}, name='login'),
path('logout/', logout, {'template_name': 'contas/logout.html'}, name='logout'),
path('register/', views.register, name='register'),
path('perfil/', views.view_perfil, name='view_perfil'),
path('perfil/edit/', views.edit_perfil, name='edit_perfil'),
path('trocar-password/', views.trocar_password, name='trocar_password'),
path('reset-password/', PasswordResetView.as_view(), {'template_name': 'contas/reset_password.html', 'post_reset_redirect': 'contas:password_reset_done'},
name='reset_password'),
path('reset-password/done/', PasswordResetDoneView.as_view(), name='password_reset_done'),
path('reset-password/confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/',
PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
path('reset-password/complete/', PasswordResetCompleteView.as_view(), name='password_reset_complete'),
]
请帮帮我,我正在学习命名空间教程......现在我被困在这个问题上。
解决方案
第 39 行缺少右括号:
return redirect(reverse('home:perfil') # missing )
我绝对建议在您的项目中使用 flake8 之类的linter,并为您使用的任何代码编辑器或 IDE 找到一个插件。从长远来看,它会发现类似的错误并为您节省很多痛苦。
推荐阅读
- java - Appium 找不到“adb.exe”
- ruby-on-rails - session#destroy 未应用
- c++ - Visual C++ static initializer strange behavior
- java - Spring的两种文档
- go - How to access request headers in grpc service proxied by. grpc-gateway in golang
- angular - Disable button using input textbox id
- python-3.x - 合并熊猫数据框时出现KeyError:名称:TimeStamp,dtype:datetime64 [ns]
- pnpm - 如何以编程方式使用 pnpm / supi 安装软件包?
- flutter - 如何在一行内有多个(4)列(或类似的)与 ListView.builder 一起滚动
- docker - Docker 覆盖文件夹吃掉了 GB 的数据