python - 如何强制用户在 Django 中完成他们的个人资料
问题描述
我设计了一个学习管理系统,客户可以参加课程、购买书籍和...... 在这个系统中,当用户想要注册课程时,被迫填写他们的个人资料信息。但是他们中的一些人不想注册课程,然后我就无法获得他们的信息。
我想强制用户完成他们的个人资料并在他们的个人资料中输入所需的信息。例如我想要:
系统向他们显示警告并强制他们在注册三天后完成他们的个人资料。
我怎样才能做到这一点?注意:另一方面,我想阻止尚未完成个人资料的用户使用面板,直到他们完成个人资料。
解决方案
您将需要实现一个中间件。在这个中间件中,您将获取您的用户并检查他们是否有个人资料,如果没有,则将他们重定向到个人资料页面,例如带有消息。
你的中间件看起来像这样
def check_userprofile_middleware(get_response):
# One-time configuration and initialization.
def middleware(request):
# Code to be executed for each request before
# the view (and later middleware) are called.
If not hasattr(request.user, "profile"):
redirect("complete-profile-page")
response = get_response(request)
return response
return middleware
然后您需要将其添加到 settings.py 中的中间件部分以激活中间件。
希望这可以帮助!
推荐阅读
- python-3.x - 错误:'builtin_function_or_method' 对象不可迭代
- python - Discordpy Selfbot 不加入服务器但不引发错误
- node.js - 如何在节点 js 中上传 OneSignal SDK 文件?
- python - Spark 2 Python重命名列并设置列数据类型
- text - SSD1351 Adafruit OLED 上的 RaspberryPi + PIL + Luma 文本颜色和行距
- java - Java 程序没有给出所需的输出
- python-2.7 - esimport overflowerror 在elasticsearch中索引批量CSV文件
- python-2.7 - 我如何根据 (_) 之后的最后一位数字对带有 glob 的文件重新排序?
- html - 左边距让我缩进错误
- git - 在 Git Commit 中仅克隆新上传的文件