【问题标题】:Fetch results based on drop down values in a form根据表单中的下拉值获取结果
【发布时间】:2020-03-08 11:36:24
【问题描述】:

我是 Django/Python 新手,正在创建一个自学项目

我有一个包含 5 个不同输入选择字段的页面

  1. 品牌 2. 型号 3. 里程 4. Price_Range 6.Year_of_Make

我有一个名为 Products 的模型,其中包含上述所有字段。

我的 html 有以下字段

    <div class="form-group">
          <select class="form-control from-control-sm" id="body" name="bodystyle" value="{{ request.Get.bodystyle }}">
               <option>Body</option>
               <option>Compact</option>
               <option>Convertible</option>
               <option>Coupe</option>
               <option>Off-road</option>
               <option>Sedan</option>
          </select>
  </div>
  <div class="form-group">
          <select class="form-control" id="product_make" name="product_make" value="{{ request.Get.product_make }}">
               <option>Ford</option>
               <option>Tata</option>
               <option>Hyundai</option>
               <option>Kia</option>
               <option>Honda</option>
               <option>Skoda</option>
          </select>
   </div>

这是我的意见.py

from django.shortcuts import render
from products.models import Products
from django.db.models import Q
# Create your views here.

def select(request):
    q1 = request.GET.get('product_make')
    q2 = request.GET.get('model_name')
    q3 = request.GET.get('bodystyle')


    cars = Products.object.filter(Q(bodystyle__icontains=q3)&Q(product_make__icontains=q1)&Q(model_name__icontains=q2))

    return render(request, 'search/search.html', {'cars': cars})

当我点击 Enter 按钮时:

网址更改为 http://127.0.0.1:8000/select/?bodystyle=Sedan&product_make=Ford 但没有显示结果。

我的 urls.py

from django.conf.urls import url
from django.contrib import admin
from pages.views import home_view
from search.views import search
from django.conf import settings
from django.conf.urls.static import static


urlpatterns = [
    url(r'^$', home_view, name='home'),
    url(r'^home/', home_view, name='home'),
    url(r'^search/', search, name='search'),
    url(r'^select/', search, name='select'),
    url('ajax/home_view/',home_view, name='ajax_load_models'),
    ]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我希望填充 {% for item in cars %},以便显示结果。

【问题讨论】:

    标签: python django search filter


    【解决方案1】:

    这段代码让我的代码正常工作

    total = s.count()
     s= s[0:total]
     cars = s.execute()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-25
      • 2022-01-22
      • 1970-01-01
      • 2014-01-20
      • 1970-01-01
      • 2021-03-25
      • 2022-01-09
      • 1970-01-01
      相关资源
      最近更新 更多