我正在创建一个搜索应用程序,用户可以在其中通过在搜索栏中写一些内容来查找配料。但是,当有一个空字段,因此没有输入q =时,我希望他将获得需要输入的信息,并将其保留在此网站上。我现在不知道如何正确地编写它,我仅在query =='':时才写过,但这不是我所需要的。
这是我的观点:
def drink_list(request):
template = "drinks/drink_list.html"
return render(request,template)
def search_results(besos):
query = besos.GET.get('q')
if query == "":
y = "please put input"
return render(besos,y)
else:
q = Q()
for queries in query.split():
q |= (Q(ingredients__ingredient_name__icontains=queries))
#why it look for 'sok z cytryny' and show as well sok z limonki
results = Recipe.objects.filter(q)
template = "drinks/search_results.html"
context = {
'results' : results,}
return render(besos,template,context)
我的模板:
{% if results %}
{% for drink in results %}
<div>
<p>{{ drink.recipe_name }}</p>
<p>Preparation: {{ drink.preparation }}</p>
<p>Ingredients:
{% for ingredient in drink.ingredients.all %}
{{ingredient.ingredient_name}}{% if not forloop.last %},{% endif %}
{% endfor %}
</p>
</div>
{% endfor %}
{% else %}
<div>Such ingredients do not exist</div>
{% endif %}