首页 > 解决方案 > 如何将表单中键入的信息显示到新页面中?

问题描述

我在第 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 页的第二个链接。

请帮忙,我被困在这个问题上。

标签: pythonhtmldjangoatom-editor

解决方案


以下是大纲的工作方式:

  1. 创建表单并成功获取数据(查看1)
  2. 将数据存入数据库
  3. 创建一个新视图并将数据作为上下文传递到另一个模板(视图 2)

对于实现部分,您的代码似乎有点混乱。我会推荐使用 Django 的默认基于类的视图(对 1 和 2 使用编辑视图之一,对 3 使用模板视图),因为您需要编写的东西少得多。如果你坚持基于函数的观点,我需要更多的时间来给出答案。


推荐阅读