首页 > 解决方案 > Django表单没有出现

问题描述

我是 django 新手,试图在 html 文件中显示表单,但看不到字段。我可以看到除了表格之外的所有内容。

任务:

允许用户在侧边栏中的搜索框中键入查询以搜索百科全书条目。

视图.py

def index(request):
    entries = util.list_entries()
    searched = []

    if request.method == "POST":
        form = Search(request.POST)
        if form.is_valid():
            item = form.cleaned_data["item"]
            for i in entries:
                if item in entries:
                    page = util.get_entry(item)
                    page_converted = markdowner.convert(page)
                    
                    context = {
                        'page': page_converted,
                        'title': item,
                        'form': Search()
                    }

                    return render(request, "encyclopedia/entry.html", context)
                if item.lower() in i.lower(): 
                    searched.append(i)
                    context = {
                        'searched': searched, 
                        'form': Search()
                    }
            return render(request, "encyclopedia/search.html", context)

        else:
            return render(request, "encyclopedia/index.html", {"form": form})
    else:
        return render(request, "encyclopedia/index.html", {
            "entries": util.list_entries(), "form":Search()
        })

布局.html

<div class="sidebar col-lg-2 col-md-3">
    <h2>Wiki</h2>
    <form method="post" action="{% url 'index' %}">
    {% csrf_token %}
        {{form.item}}
    </form>
    <div>
        <a href="{% url 'index' %}">Home</a>
    </div>
    <div>
        <a href="{% url 'create' %}">Create New Page</a>
    </div>
    <div>
        <a href="{% url 'random' %}">Random Page</a>
    </div>
    {% block nav %}
    {% endblock %}
</div>

搜索类

class Search(forms.Form):
    items = forms.CharField(widget=forms.TextInput(attrs={'class': 'myfieldclass', 'placeholder': 'search'}))

标签: djangodjango-forms

解决方案


尝试{{ form.as_p }}或只是{{ form }}代替{{ form.item }}.

我认为item没有提到任何东西。


更新:

Search您的表单类中有错字。字段名称不应itemitems.


推荐阅读