如果未执行登录,我正在尝试创建受限用户编辑页面。
登录后,编辑页面打开,URL 中包含任何 user_id。
虽然编辑页面应该只在 user_id 已经登录用户的情况下打开。
例如,我使用 user_id=7 登录,因此只有一个下一个 url ( http://127.0.0.1:8000/user/7/edit ) 必须有权访问编辑页面。
这个编辑页面也可以通过任何下一个 url ( http://127.0.0.1:8000/user/ /edit)
我的代码中是否有任何错误或错误?
我已经清除了 Opera 和 Chrome 中的缓存,但问题仍然存在。
姜戈版本。1.11.9。
LOGIN_URL 未在 settings.py 中定义
网址.py
urlpatterns = [
url(r'^login/$', user_login, name='user-login',),
url(r'^(?P<user_id>\d+)/edit$', user_edit, name='user-edit',),
]
视图.py
def user_login(request):
login_form = AuthenticationForm(request.POST or None)
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user:
login(request, user)
print("next is {}".format(request.GET.get('next')))
return redirect(user_edit, user.id)
else:
return redirect(user_login)
return render(request, 'user_login.html', {'form': login_form})
@login_required(login_url='/user/login/')
def user_edit(request, user_id):
print(request, request.user)
print("next is {}".format(request.GET.get('next')))
return render(request, 'user_edit.html', {'userid': user_id, 'user': request.user})