python - 如何将表单中键入的信息显示到新页面中?
问题描述
我在第 1 页,我在表单中输入了一个单词,然后点击提交,然后我想被带到一个新页面并显示来自数据库表的信息,并以提供的信息作为键。我怎么做?
Below is the code that I tried.
VIEWS.PY file
def Professional_Development(request):
resources=TheProfessionalResources.objects.order_by('Field')
form=forms.FieldForm()
user_dit={'user':resources,'form':form}
if request.method=='POST':
form=forms.FieldForm(request.POST)
if form.is_valid():
variable=form.cleaned_data['name']
print(variable)
ace=TheProfessionalResources.objects.filter(Field=variable)
resources=TheProfessionalResources.objects.order_by('Field')
print("EXECUTING FORM")
user_dict={'user':resources,'form':form,'ACE':ace,'VARIABLE':variable}
return render(request,'first_app/Resources_Professional.html',context=user_dict)
print("EXECUTKING PAGE")
return render(request,'first_app/Professional_Development.html',context=user_dit)
2nd function in views.py file
def Resources_Professional(request):
resources=TheProfessionalResources.objects.order_by('Field')
form=TheProfessionalResourcesForm()
user_dict={'user':resources,'form':form}
return render(request,'first_app/Resources_Professional.html',context=user_dict)
HTML FILE
<!DOCTYPE html>
{% extends "first_app/basic_skeleton.html" %}
{%block body_block%}
<H1>Please sign up here</H1>
{%if user%}
<ol>
{%for person in user%}
<li>{{person.Field}}</li>
</ol>
{%endfor%}
{%endif%}
<form method="post">
{{form.as_p}}
{% csrf_token %}
<input type="submit" value="submit">
</form>
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<H1>Please sign up here</H1>
{{VARIABLE}}
{%if ACE%}
<ol>
{%for person in ACE%}
<li>{{person.Title}}</li>
</ol>
{%endfor%}
{%endif%}
{{form.as_p}}
</body>
</html>
URLS.PY in the project folder
from django.urls import path
from first_app import views
urlpatterns = [
url(r'^basic_skeleton/',views.basic_skeleton,name='basic_skeleton'),
url(r'^Professional_Development/',views.Professional_Development,name='Professional_Development'),
url(r'^Personal_Development/',views.Personal_Development,name='Personal_Development'),
url(r'^Financial_Development/',views.Financial_Development,name='Financial_Development'),
url(r'^first_app/',include('first_app.url')),
url(r'^$',views.index,name='index'),
url(r'^Resources_Professional/$',views.Resources_Professional,name='Resources_Professional'),
path('admin/', admin.site.urls),
]
URLS .py file in applications folder
from django.conf.urls import url,include
from first_app import views
app_name='first_app'
urlpatterns=[
url(r'^$',views.basic_skeleton,name='basic_skeleton'),
url(r'^Personal_Development/$',views.Personal_Development,name='Personal_Development'),
url(r'^Financial_Development/$',views.Financial_Development,name='Financial_Development'),
url(r'^Professional_Development/$',views.Professional_Development,name='Professional_Development'),
url(r'^Resources_Professional/$',views.Resources_Professional,name='Resources_Professional'),
]
或者您也可以帮助我在第 1 页创建一个列表,然后单击第一页上的链接,我需要转到第二页,其中包含与该特定链接相关的详细信息,如果单击其他链接,则与该链接相关的详细信息第 2 页的第二个链接。
请帮忙,我被困在这个问题上。
解决方案
以下是大纲的工作方式:
- 创建表单并成功获取数据(查看1)
- 将数据存入数据库
- 创建一个新视图并将数据作为上下文传递到另一个模板(视图 2)
对于实现部分,您的代码似乎有点混乱。我会推荐使用 Django 的默认基于类的视图(对 1 和 2 使用编辑视图之一,对 3 使用模板视图),因为您需要编写的东西少得多。如果你坚持基于函数的观点,我需要更多的时间来给出答案。
推荐阅读
- javascript - 当用户驱动“ctrl+arrow”插入符号移动时,是否存在 REGEX 计算 2 个单词之间的插入符号停止,即使有标点符号
- mongodb - 返回数组长度而不是 MongoDB 查询中的元素
- python - python脚本不断运行
- c++ - 为什么 ComPtr 的函数返回的值与 & 不同?
- javascript - 在另一个innerHTML js中输出html元素内容
- python-3.x - 接收 python 类型错误:预期的 str、字节或 os.PathLike 对象,而不是 StringVar
- python - 加载权重 TensorFlow 2.0 模型错误
- javascript - 来自 json 的数据未填充到我的 Angular 8 应用程序中
- r - R:在数据框的列之间添加插值?
- android - 如何检查选项卡式布局中可见的片段?