django - 如何在登录后检查用户是否提交了表单一,如果再次是,如果他再次登录,他应该重定向到表单 2,而不是在 django 中再次提交
问题描述
我有一个用户登录的应用程序,在他登录后,他会重定向到仪表板,其中出现一个表单,用户填写表单,一旦用户填写表单,他就会重定向到显示表单进度的下一页。因此,如果用户再次登录,他应该自动重定向到进度页面,如果他已经填写了表单页面,他应该不会再次获得表单页面。任何人都可以建议我如何实现这些。
views.py
def create(request):
if request.method == 'POST':
post = AccountProfile()
post.user = request.user
post.name = request.POST['name']
post.email = request.POST['email']
post.mobile = request.POST['mobile']
post.date = request.POST['date']
post.sex = request.POST['sex']
post.save()
return render (request,'posts/dashboard-post-a-job.html')
这些是用户在登录和填写表单后重定向的视图。
解决方案
您应该将进度存储在数据库中。如果您只需要检查一个表单,则在AccountProfile
模型中添加一个新列。
模型.py
class AccountProfile(models.Model):
...
form1_submitted = models.BooleanField()
然后,一旦提交表单,您就可以更新此字段。
def create(request):
if request.method == 'POST':
post = AccountProfile()
post.user = request.user
post.name = request.POST['name']
post.email = request.POST['email']
post.mobile = request.POST['mobile']
post.date = request.POST['date']
post.sex = request.POST['sex']
post.form1_submitted = True # save the progress
post.save()
return render (request,'posts/dashboard-post-a-job.html')
现在,进度页面可以检查该字段的值并相应地呈现表单。
推荐阅读
- cocos2d-x - 在 box2d 中应用表面摩擦
- flutter - 如何解决 A RenderFlex 底部溢出 8.5 像素。在网格视图中
- scala - 更改 Scala 代码以根据来自两个不同数组记录的电子邮件发送分组数据
- mysql - 如何在“SELECT * FROM PRODUCT LIMIT CAST(select CAST('1' AS UNSIGNED)), 5”中转换输入?
- python - Python 的 JSON 对象映射器
- r - 在不同抽象级别(组、时间)优化逻辑
- r - 为什么`lapply`会自动返回赋值结果?
- sql-server - 参数@objname 不明确或声明的@objtype (INDEX) 错误
- python - Pygame 错误:视频系统未初始化(更多信息在描述中)
- java - 升级故障安全时集成测试失败,但在 intellij 内通过