gpt4 book ai didi

python - Django:在允许用户注册之前检查用户是否已登录?

转载 作者:太空宇宙 更新时间:2023-11-03 17:57:06 25 4
gpt4 key购买 nike

这里是 Django 新手。我正在设置一个注册页面,我想确保当前登录的人无法创建新帐户。

到目前为止,我有一个这样的表格:

class RegisterView(FormView):
template_name = 'users/register_user.html'
success_url = 'thank_you'

def get(self, request):
if request.user.is_authenticated():
# If a user is logged in, redirect them to a page informing them of such
return render(request, 'users/already_logged_in.html')
else:
# would like to direct the user to the normal registration page

def post(self, request):
user_form = UserCreateForm(request.POST)
if user_form.is_valid():
username = user_form.clean_username()
password = user_form.clean_password2()
user_form.save()
user = authenticate(username=username,
password=password)
login(request, user)
return render(request, 'home.html')
return render(request, 'register_user.html', {'form': user_form})

我怀疑我可能必须使用 mixin(我也对它们是什么感到困惑),所以如果它们是解决方案的一部分,请稍微扩展一下。

在“else”之后我应该包含什么才能让它通过通常的注册页面?

感谢您提前提供的帮助。

最佳答案

只返回父 FormView 应该返回的内容

def get(self, request):
if request.user.is_authenticated():
# If a user is logged in, redirect them to a page informing them of such
return render(request, 'users/already_logged_in.html')
else:
return super(RegisterView, self).get(request)

您需要在 View 上设置 form_class,而不是在帖子方法中,请查看 django 文档以了解如何使用 FormView https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-editing/#formview

关于python - Django:在允许用户注册之前检查用户是否已登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28327473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com