Django Queryset возвращает все, если поле пусто при наличии отношения OneToMany

У меня есть html-страница, на которой можно искать автомобиль по нескольким критериям. Как мне сказать django orm возвращать все, если поле пустое? Я проверил этот вопрос и реализовал ту же идею из первого ответа, но это не работает для внешних полей, особенно для поля модели, которое, если оставить пустым, я получаю эту ошибку. Вот мои классы

class City(models.Model):
    name = models.CharField(max_length=10, null=True)
    created_at = models.DateTimeField(auto_now_add=True, null=True, blank=True)
    updated_at = models.DateTimeField(auto_now=True, null=True, blank=True)

class PowerSource(models.Model):
    source = models.CharField(max_length=8)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

class Manufacturer(models.Model):
    manufacturer = models.CharField(max_length=45)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

class CarModel(models.Model):
    model = models.CharField(max_length=45)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    manufacturer = models.ForeignKey(Manufacturer, related_name='car_models', on_delete=models.CASCADE)

class Car(models.Model):
    color = models.CharField(max_length=10, null=True)
    year = models.IntegerField(null=True, validators=[MinValueValidator(datetime.today().year-120), MaxValueValidator(datetime.today().year+1)])
    num_passengers = models.IntegerField(validators=[MinValueValidator(1)], null=True)
    transmission = models.CharField(max_length=9, null=True)
    status = models.CharField(max_length=4, null=True)
    price = models.IntegerField(validators=[MinValueValidator(1)], null=True)
    bhp = models.IntegerField(null=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    city = models.ForeignKey(City, related_name='cars', on_delete=models.CASCADE)
    power_source = models.ForeignKey(PowerSource, related_name='cars', on_delete=models.CASCADE)
    model = models.ForeignKey(CarModel, related_name='cars', on_delete=models.CASCADE)

Например, если я выбираю производителя и оставляю остальные поля пустыми, я должен получить все автомобили этого производителя, независимо от цвета, года выпуска и т.д. Однако я получаю упомянутую ошибку. Если я выбираю производителя и модель, я не получаю ошибку, но результат поиска пуст. Есть идеи?

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