Я пытаюсь сортировать данные в django, данные поступают из разных таблиц в разные выпадающие списки, но я застрял, я не получаю идеального соответствия.

** В основном я делаю поисковую систему для компании по продаже автомобилей в этой поисковой системе данные поступают от различных моделей, но я не получаю точные данные, используя этот фильтр, как я могу получить идеальное соответствие Мне нужна помощь, чтобы решить эту проблему Я буду очень благодарен вам **. enter image description here

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 изменить это.

Вернуться на верх