首页 > 解决方案 > Django搜索空值,验证

问题描述

我正在创建一个搜索应用程序,用户可以通过在搜索字段中写一些来查找成分。但是当有空字段时,所以没有输入 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 %}

标签: djangovalidationsearch

解决方案


我认为您可以使用django 表单和字段验证,例如


推荐阅读