gpt4 book ai didi

django:在同一页面中获取输入并显示输出

转载 作者:行者123 更新时间:2023-12-04 17:25:45 25 4
gpt4 key购买 nike

我对 Django 很陌生,并且正在努力做一些非常简单的事情。
我有一个 ModelForm对于以下型号:

class Queries(models.Model):
user_id=models.CharField(max_length=200)
query=models.CharField(max_length=200)

我向用户展示了一个简单的表单,它将有助于执行以下操作:
  • 用户会问一个问题
  • 问题将被处理(将生成一个数据库查询
    基于问题)
  • 然后查询结果应该显示在表单的正下方
    同一页。

  • 这是我的 views.py 的样子:
    from django.http import HttpResponse
    from django.shortcuts import get_object_or_404, render
    from basicapp.models import QueryForm

    def index(request):
    form=MyForm()
    real_form=form.getForm(request)
    response=form.response
    return render(request,'basicapp/index.html',{
    'form': real_form,
    'response':response,
    })
    class MyForm:
    response=''
    def getForm(self,request):
    form = QueryForm(request.POST)
    if form.is_valid():
    response=form.cleaned_data['query']
    form.save()
    return form

    现在我正在尝试简单的东西,我正在获取表单查询字段中的值并尝试将其发送回页面;到目前为止我失败了。
    这是 index.html:
    <form action=" " method="post">{% csrf_token %}
    {{ form }}
    <p>{{response}}</p>
    <input type="submit" value="Submit" />
    </form>

    如果我能做到这一点,我认为查询的东西不会那么困难。表单工作正常,数据正在保存在数据库中。只有 response字符串来自 views.py无法在 index.html 内检索到表单提交后。你能帮忙吗?

    编辑:
    index.html 中尝试以下操作基于霍夫的回答:
    <form id="myForm" action=" " method="get">{% csrf_token %}
    {{ form }}
    <input type="submit" value="Submit" />
    </form>
    <div id="response">
    </div>
    <script language="JavaScript">
    $(document).ready(function() {
    $("#myForm").submit(function() { // catch the form's submit event
    $.ajax({ // create an AJAX call...
    data: $(this).serialize(), // get the form data
    type: $(this).attr('GET'),
    success: function(response) { // on success..
    $("#response").html(response); // update the DIV
    }
    });
    return false;
    });
    });
    </script>

    仍然没有运气:(

    最佳答案

    View .py

    def index(request):
    questions=None
    if request.GET.get('search'):
    search = request.GET.get('search')
    questions = Queries.objects.filter(query__icontains=search)

    name = request.GET.get('name')
    query = Queries.object.create(query=search, user_id=name)
    query.save()

    return render(request, 'basicapp/index.html',{
    'questions': questions,
    })

    html
    <form method="GET">
    Question: <input type="text" name="search"><br/>
    Name: <input type="text" name="name"><br/>
    <input type="submit" value="Submit" />
    </form><br/><br/>


    {% for question in questions %}
    <p>{{question}}</p>
    {% endfor %}

    关于django:在同一页面中获取输入并显示输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14837312/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com