У меня есть модель Django, которую я делаю для нее, которая фильтрует результаты.
models.py:
Ingredient(models.Model):
account = models.ForeignKey(Account, on_delete=models.CASCADE, null=False)
brand = models.ForeignKey(Brand, on_delete=models.CASCADE, null=False)
name = models.CharField(max_length=100, null=False, blank=False)
cost = models.DecimalField(max_digits=14, decimal_places=2, null=False)
Теперь дело в том, что поиск форма (которая имеет все поля, кроме account
, конечно), ни одно из ее полей не является обязательным, вы можете фильтровать либо по одному полю или два или три из них.
Проблема в том, что я могу 'do do:
Ingredient.objects.filter(account=account, brand=brand, name=name, cost=cost)
... потому что марка, название и стоимость могут быть отправлены пустыми / нулевыми
Как решить эту проблему, не создавая код строки фильтра для каждой возможности фильтрации