Я пытаюсь сортировать данные в django, данные поступают из разных таблиц в разные выпадающие списки, но я застрял, я не получаю идеального соответствия.
** В основном я делаю поисковую систему для компании по продаже автомобилей в этой поисковой системе данные поступают от различных моделей, но я не получаю точные данные, используя этот фильтр, как я могу получить идеальное соответствие Мне нужна помощь, чтобы решить эту проблему Я буду очень благодарен вам **.
home.html
views.py
def searchdd(request):
companyname = request.POST.get('companyname', "")
carname = request.POST.get('carname', "")
fromdate = request.POST.get('fromdate', "")
todate = request.POST.get('todate', "")
type = request.POST.get('type', "")
steering = request.POST.get('steering', "")
if search:
# searchresult = Car.objects.filter(Q(company__CompanyName__contains=companyname)|Q(CarName=carname)|Q(mdate__ManufacturingDate__contains=fromdate)|Q(mdate__ManufacturingDate__contains=todate)|Q(type__TypeName__contains=type)|Q(steering__SteeringName__contains=steering))
searchresult = Car.objects.filter(Q(company__CompanyName__contains=companyname)|Q(CarName=carname))
else:
searchresult = Car.objects.all()
if companyname:
searchresult = Car.objects.filter(company__CompanyName=companyname)
if carname:
searchresult = Car.objects.filter(carname)
if fromdate:
searchresult = Car.objects.filter(mdate__ManufacturingDate=fromdate)
if todate:
searchresult = Car.objects.filter(mdate__ManufacturingDate=todate)
if type:
searchresult = Car.objects.filter(type__TypeName=type)
if steering:
searchresult = Car.objects.filter(steering__SteeringName=steering)
context = {'searchresult':searchresult}
return render(request, 'app/searchdd.html', context)
models.py
searchresult
переопределить, когда есть два или более параметров запроса, вы должны изменить ваш код следующим образом, чтобы фильтровать на основе каждого параметра запроса:
searchresult = Car.objects.all()
if search:
# searchresult = Car.objects.filter(Q(company__CompanyName__contains=companyname)|Q(CarName=carname)|Q(mdate__ManufacturingDate__contains=fromdate)|Q(mdate__ManufacturingDate__contains=todate)|Q(type__TypeName__contains=type)|Q(steering__SteeringName__contains=steering))
searchresult = searchresult.filter(Q(company__CompanyName__contains=companyname)|Q(CarName=carname))
if companyname:
searchresult = searchresult.filter(company__CompanyName=companyname)
if carname:
searchresult = searchresult.filter(carname)
if fromdate:
searchresult = searchresult.filter(mdate__ManufacturingDate=fromdate)
if todate:
searchresult = searchresult.filter(mdate__ManufacturingDate=todate)
if type:
searchresult = searchresult.filter(type__TypeName=type)
if steering:
searchresult = searchresult.filter(steering__SteeringName=steering)
примечание: type
- зарезервированное ключевое слово python изменить это.