获取选择选项数据时出现问题

时间:2019-09-05 05:52:19

标签: django django-forms django-views

我在从表单获取所选数据时遇到问题。这是我的表格

    <form action="#" method="GET">
{% csrf_token %}
  <select name="country" id="selectcountries" class="custom-select">
    <option>Select country</option>
    {% for item in countries %}
      <option val="{{ item.name }}"> {{ item.name }} </option>    
    {% endfor %}
  </select>   
  <select name ="city" id="selectcities" class="custom-select">
    <option>Select city</option>
  </select>
  <select class="custom-select" name="option" >
    <option selected> Tourist Spot </option>
    <option> Hotel </option>
    <option> Restaurent </option>
  </select>
  <button type="submit" class="btn tour-btn"><i class="fa fa-search pr-2" aria-hidden="true"></i> <a href="{% url 'advanceSearch' %}"> Search </a></button>
</form>

我的views.py是

def advanceSearch(request):
    country = request.GET.get('country')
    city = request.GET.get('city')
    option = request.GET.get('option')

    if request.method == "GET" :
        if country:
            message = 'q= %s' % country
        else:
            message = 'Empty'

    else:
        message = 'oops'

    return HttpResponse(message)

HTTPResponse总是给我空消息,即使在通过表单传递值之后也是如此。我想从此表格中获取数据,但是我不能。

1 个答案:

答案 0 :(得分:1)

我试图用提供的代码复制场景,但我认为您的搜索视图未得到执行。您已在按钮内的锚标记中提供了{% url 'advanceSearch' %}。它应该在表单的action属性中。

<form action="{% url 'advanceSearch' %}" method="GET">
{% csrf_token %}
  <select name="country" id="selectcountries" class="custom-select">
    <option>Select country</option>
    {% for item in countries %}
      <option val="{{ item.name }}"> {{ item.name }} </option>    
    {% endfor %}
  </select>   
  <select name ="city" id="selectcities" class="custom-select">
    <option>Select city</option>
  </select>
  <select class="custom-select" name="option" >
    <option selected> Tourist Spot </option>
    <option> Hotel </option>
    <option> Restaurent </option>
  </select>
  <button type="submit" class="btn tour-btn"><i class="fa fa-search pr-2" aria-hidden="true"></i>Search</button>
</form>