程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在 Django 中制作搜索栏大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在 Django 中制作搜索栏?

开发过程中遇到在 Django 中制作搜索栏的问题如何解决?下面主要结合日常开发的经验,给出你关于在 Django 中制作搜索栏的解决方法建议,希望对你解决在 Django 中制作搜索栏有所启发或帮助;

我试图在 django 中创建一个搜索栏并观看了几个 youtube 教程,但没有一个奏效。我想要做的是制作一个搜索栏,重定向到文章/what_you_searched_for,或者如果不可能显示包含搜索的结果。如果有人有足够的时间,他们可以告诉我如何做到这两点:)。 在 vIEws.py 中:

def index(request):
    queryset = article.objects.all()
    number_of_records = article.objects.count()
    random_page = random.randint(1,number_of_records)
    context = {
        "object_List": queryset,"random_page": random_page
    }

#    query = ""
#    if request.GET:
#        query = request.GET['q']
#        context['query'] = str(query)


    entrIEs = util.List_entrIEs()
    return render(request,"encyclopedia/index.HTML",context)
    #{
        #"entrIEs": util.List_entrIEs(),#"random_page": random_page,#})
def dynamic_articles_vIEw(request,my_ID):
    obj = article.objects.get(ID= my_ID)
    number_of_records = article.objects.count()
    random_page = random.randint(1,number_of_records)
    context = {
        "object": obj,"random_page": random_page
    }
    return render(request,"encyclopedia/article_detail.HTML",context)

在 index.HTML 中:

{% extends "encyclopedia/layout.HTML" %}

{% block Title %}
    Encyclopedia
{% endblock %}

{% block body %}
<h1 ID="demo" onclick="add_article()">Article</h1>


    <ul>

        {% for instance in object_List %}
            <li><a href = "http://127.0.0.1:8000/articles/{{instance.ID}}/">{{instance.Title}}</a></li>
        {% endfor %}

    </ul>

{% endblock %}

layout.HTML: ------------在这里搜索栏 ---------

{% load static %}
<!DOCTYPE HTML>
<HTML lang="en">
    <head>
        <Title>{% block Title %}{% endblock %}</Title>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/CSS/bootstrap.min.CSS" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5paxtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
        <link href="{% static 'encyclopedia/styles.CSS' %}" rel="stylesheet">
    </head>
    <body>
        <div class="row">
            <div class="sIDebar col-lg-2 col-md-3">
                <h2>Wiki</h2>
                <form action = "/articles/{{q}}">                         __________EXACTLY HERE ________
                    <input class="search" type="text" name="q" placeholder="Search...">
                </form>
                <div>
                    <a href="{% url 'index' %}">Home</a>
                </div>
                <div>
                    <a href = "/new_article" >Create New Article</a>
                </div>
                <div>
                    <a href = "http://127.0.0.1:8000/articles/{{random_page}}">Random Page</a>
                </div>
                {% block nav %}
                {% endblock %}
            </div>
            <div class="main col-lg-10 col-md-9">
                {% block body %}
                {% endblock %}
            </div>
        </div>
    </body>
</HTML>

网址:

from django.contrib import admin
from django.urls import include,path
from encyclopedia import vIEws
from encyclopedia.vIEws import index,new_article,dynamic_articles_vIEw
urlpatterns = [
    path('admin/',admin.site.urls),path('',include("encyclopedia.urls")),path('new_article/',new_article),path('home/',index,name = 'home'),path('articles/<int:my_ID>/',dynamic_articles_vIEw,name = 'articless')
]

百科全书网址(其他文件夹):

from django.urls import path

from . import vIEws

urlpatterns = [
    path("",vIEws.index,name="index"),path("",vIEws.new_article,name="new_article")
]

如果需要,我会评论模型和表格,但我不想让我的问题太长。

解决方法

最简单的方法是在您的模板中添加一个 GET form 和一个 search 输入,而无需设置表单的操作:

<form action="">
    <input type="text" name="search" placeholder="Search by title" value="{{request.GET.title}}">
    <input type="submit" value="Search">
</form>

然后在 views.py 中你得到值。如果给出,则按它过滤:

def dynamic_articles_view(request):
    context['object_list'] = article.objects.filter(title__icontains=request.GET.get('search'))
    return render(request,"encyclopedia/article_detail.html",context)

大佬总结

以上是大佬教程为你收集整理的在 Django 中制作搜索栏全部内容,希望文章能够帮你解决在 Django 中制作搜索栏所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: