Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django/Python网站的哪个部分需要更改以在搜索栏中获得预先编写的文本?_Python_Css_Django_Html - Fatal编程技术网

Django/Python网站的哪个部分需要更改以在搜索栏中获得预先编写的文本?

Django/Python网站的哪个部分需要更改以在搜索栏中获得预先编写的文本?,python,css,django,html,Python,Css,Django,Html,我有.css,它对搜索栏的位置进行硬编码。搜索栏使用的变量为keywords,在forms.py中调用。最后,view.py可能是在搜索栏中获取预先填充的“搜索工具”文本的另一种可能性 我可以像在浏览器的HTML编辑器中那样设置值=“搜索工具”,设置这些代码中的哪一个 style.css文件对我来说可能是最令人困惑的,因为我可以将初始定义更改为[type=“text”、value=“Search for a tool”],然后搜索栏移动到html页面上的新位置,并且没有预写的文本 ... .s

我有.css,它对搜索栏的位置进行硬编码。搜索栏使用的变量为keywords,在forms.py中调用。最后,view.py可能是在搜索栏中获取预先填充的“搜索工具”文本的另一种可能性

我可以像在浏览器的HTML编辑器中那样设置值=“搜索工具”,设置这些代码中的哪一个

style.css文件对我来说可能是最令人困惑的,因为我可以将初始定义更改为[type=“text”、value=“Search for a tool”],然后搜索栏移动到html页面上的新位置,并且没有预写的文本

...

.search{
    width:350px;
    margin-left:120px;
    float:left;
    position:relative;
    height:75px;


}
.search input[type="text"], .search input[type='number'], .search input[type="password"] {
    margin:20px;
    margin-top:25px;
    padding: 4px; background:#d8f6fd;
    float:right;
    border: 1px solid #66c8de;
    -moz-box-shadow: 0 1px 1px #ddd inset, 0 1px 0 #fff;
    -webkit-box-shadow: 0 1px 1px #ddd inset, 0 1px 0 #fff;
    box-shadow: 0 1px 1px #ddd inset, 0 1px 0 #fff;
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
    border-radius: 3px;
}
.search input[type="submit"]{
    margin-top:25px;
    margin-right:25px;
    float:right;
}
...
格式为.py。这使用了一个char字段。当我尝试在CharField中添加参数时,会出现很多错误(blank=False,default=“输入工具名”) 我猜没有任何东西可以用这个.py初始化搜索栏

class Search(forms.Form):
    keywords = forms.CharField()
py似乎只处理来自搜索栏的请求,我假设它可以初始化

def search(request):
    template = loader.get_template('sharesystem/search.html')
    form = Search()
    if request.method == 'GET':
        form = Search(request.GET)
        if form.is_valid():
            keywords = form.cleaned_data['keywords']
            tools = Tool.objects.filter(name__contains = keywords).values()
            if (keywords is ''):
                tools = Tool.objects.all()
            context = RequestContext(request, {
            'tools' : tools, 'form':form })
            return HttpResponse(template.render(context))
    tools = Tool.objects.all()
    context = RequestContext(request, {
            'form' : form,'tools' : tools})

    return HttpResponse(template.render(context))
当我为输入添加新行时,为了跟进base.html,我得到了多个搜索框。调用class='search'时,我应该在该div中输入什么

<div id="headerwrapper">
            <div class="centerframe">
            <div id="logo">
                <a  href="{% url 'sharesystem:index' %}" ><img src="{{STATIC_URL}}sharesystem/images/logo.png"border="none" ></a>
            </div>

            <div class='search' >
            <input type="text" name="keywords" placeholder="Enter a tool name"/>

            <form action="/sharesystem/search/" method="GET" style='margin-bottom:0;'>
                    {% csrf_token %}
                    <input type="submit" value="Search"  />
                    {{ search_form.keywords }}
                    </form>

            </div>
            <div style="padding-top:24px;">
            <form action="/sharesystem/search/" method="GET" style='margin-bottom:0;'>
                    {% csrf_token %}
                    <input type="submit" value="View All Tools"  />

            </form>
            </div>
            </div>
        </div>

{%csrf_令牌%}
{{search_form.keywords}}
{%csrf_令牌%}

使用
输入
HTML标记的
占位符
属性:

<input type="text" name="keywords" placeholder="Enter a tool name">

您应该将loo带入表单的数据中

form = Form(initial={'value': 'My Search!'})
就你而言: 表单=搜索() 如果request.method==“GET”:
form=Search(request.GET,initial={'value':'My Search!'})

根据您的业务需要和需要支持的浏览器,我建议使用HTML输入的“占位符”属性

您需要重写forms init函数并从那里更新widget attrs字典,或者在CharField声明中显式设置widget


关键字=forms.CharField(widget=forms.TextInput(attrs={'placeholder':'Search for a tool'}))

删除了html页面中的搜索框。什么是loo以及它在哪里为表单提供初始数据?我识别init。@JoeWaldron检查我的更新。在视图中创建表单实例时,请尝试传递初始参数。初始化在
form=Search()
中。我可以将其更改为
form=Search(initial={'value':'My Search!'}
或者让行看起来像
form=Search()form=form(initial={'value':'My Search!'})
是的,您可以试试。form(initial={'value':'My Search!')就足够了。我尝试了,得到了错误
异常值:未定义名称“Form”
我看到
有一些进展,但它创建了一个重复的搜索栏。