我遇到了搜索表单问题。我正在尝试创建一个查询数据库并在结果页上返回结果的搜索字段。我有返回1结果与一个特定的查询和另一个查询与多个行我得到这个错误get()返回多个MyModel - 它返回791!。由于我是Django Forms新手,这看起来很愚蠢。如果您需要其他信息,请告诉我。我曾尝试使用.filter,但不会返回任何内容。我已经看过多个SO问题,有些已经帮助过,但仍然有一些小问题。我的代码如下:Django - get()返回多个返回700
views.py
from django.shortcuts import render
from .models import Model
def index(request):
return render(request, 'index.html')
def search(request):
query = request.GET.get('q')
if query:
query = str(query)
results = myModel.objects.get(
site=query
)
context = {"results": results}
return render(request, 'results.html', context)
results.html
{% if results %}
<ul>
<li><p>{{ results.url }}</p></li>
</ul>
{% else %}
<p>Nothing Available.</p>
{% endif %}
的index.html
<form action="/results/" method="GET">
{% csrf_token %}
<input id="search_box" type="text" name="q" placeholder="Search...">
<button id="search_submit" type="submit" class="btn btn-defaultbtnlg"><i class="fa fa-search fa-fw"></i> <span class="networkname">Search</span></button>
</form>
什么是你的SQL查询的意义呢?你执行它,忽略结果,然后用Django模型调用做同样的事情。 –
@DanielRoseman我想把它拿出来让我编辑它。 –
'get'只希望找到一个结果,如果发现更多,则会抛出错误,使用'filter'获得多个结果! (https://docs.djangoproject.com/en/1.10/ref/models/querysets/#get) – abidibo