如何在 Django 中成功提交表单后在另一个模板中显示用户信息(特殊 ID、名字、姓氏)
How to show user's information (special ID, firstName, lastname) in another template after successfully form submission in Django
如何在 Django 中成功提交表单后在另一个模板中显示用户信息(特殊 ID、名字、姓氏)。
我有一个表格来询问用户信息(一般信息、教育、经验),我随机给出唯一的 test_id。用户提交表单成功后,我必须显示 his/her test_id 来记住。
我对视图形式一无所知。我的解决方案有点笨
My model:
class UserForm_uz(models.Model):
test_id = models.CharField(default=random_string,max_length=5,editable=False,unique=True)
rasm = models.ImageField(upload_to='media/rasmlar',null=True,blank=True)
jobName = models.ForeignKey(Job, on_delete=models.CASCADE)
lastName = models.CharField(max_length=200)
firstName = models.CharField(max_length=200)
middleName = models.CharField(max_length=200,blank=True,null=True)
birthData = models.DateField()
nation = models.CharField(max_length=50,blank=True,null=True)
我的看法:
class FormAfterView(View):
def get(self,request):
obj = UserForm_uz.objects.all().last()
test_id = obj.test_id
firstName = obj.firstName
lastName = obj.lastName
return render(request,"formafter.html",{"test_id":test_id,"firstName":firstName,"lastName":lastName})
您可以将查询集直接传递给 Django 模板,并使用该查询集相应地显示数据。所以你的函数会像这样...
查看
class FormAfterView(View):
def get(self,request):
obj = UserForm_uz.objects.all().last()
context = {
'user_details': obj,
}
return render(request,"formafter.html", context)
Django 模板
<p>{{user_details.test_id}}</p>
<p>{{user_details.firstname}}</p>
........
此外,您应该尝试使用 URL 传递参数以从模型中获取数据。
使用 obj = UserForm_uz.objects.all().last()
确实有效,但它不是首选方式,如果您在模型 class 中放置排序查询,有时它会给您错误的数据。你能做的是
URL 文件
urlpatterns = [
path("form_after_view/<string:main_id>", views.FormAfterView, name="form_after_view"),
]
表单保存视图
class FormAfterView(View):
def post(self,request):
form = Formclass(request.POST)
if form.is_valid():
form.save()
return redirect('form_after_view', form.main_id)
下一步查看
class FormAfterView(View):
def get(self,request, main_id):
obj = UserForm_uz.objects.get(main_id=main_id)
这将为您提供刚刚在上一步视图中保存的确切实例。
如何在 Django 中成功提交表单后在另一个模板中显示用户信息(特殊 ID、名字、姓氏)。 我有一个表格来询问用户信息(一般信息、教育、经验),我随机给出唯一的 test_id。用户提交表单成功后,我必须显示 his/her test_id 来记住。 我对视图形式一无所知。我的解决方案有点笨
My model:
class UserForm_uz(models.Model):
test_id = models.CharField(default=random_string,max_length=5,editable=False,unique=True)
rasm = models.ImageField(upload_to='media/rasmlar',null=True,blank=True)
jobName = models.ForeignKey(Job, on_delete=models.CASCADE)
lastName = models.CharField(max_length=200)
firstName = models.CharField(max_length=200)
middleName = models.CharField(max_length=200,blank=True,null=True)
birthData = models.DateField()
nation = models.CharField(max_length=50,blank=True,null=True)
我的看法:
class FormAfterView(View):
def get(self,request):
obj = UserForm_uz.objects.all().last()
test_id = obj.test_id
firstName = obj.firstName
lastName = obj.lastName
return render(request,"formafter.html",{"test_id":test_id,"firstName":firstName,"lastName":lastName})
您可以将查询集直接传递给 Django 模板,并使用该查询集相应地显示数据。所以你的函数会像这样...
查看
class FormAfterView(View):
def get(self,request):
obj = UserForm_uz.objects.all().last()
context = {
'user_details': obj,
}
return render(request,"formafter.html", context)
Django 模板
<p>{{user_details.test_id}}</p>
<p>{{user_details.firstname}}</p>
........
此外,您应该尝试使用 URL 传递参数以从模型中获取数据。
使用 obj = UserForm_uz.objects.all().last()
确实有效,但它不是首选方式,如果您在模型 class 中放置排序查询,有时它会给您错误的数据。你能做的是
URL 文件
urlpatterns = [
path("form_after_view/<string:main_id>", views.FormAfterView, name="form_after_view"),
]
表单保存视图
class FormAfterView(View):
def post(self,request):
form = Formclass(request.POST)
if form.is_valid():
form.save()
return redirect('form_after_view', form.main_id)
下一步查看
class FormAfterView(View):
def get(self,request, main_id):
obj = UserForm_uz.objects.get(main_id=main_id)
这将为您提供刚刚在上一步视图中保存的确切实例。