【发布时间】:2020-06-14 03:35:22
【问题描述】:
我有一个 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 之外的所有字段都有),它的任何字段都不是必需的,您可以仅按单个字段或两个或三个字段进行过滤。
问题是我做不到:
Ingredient.objects.filter(account=account, brand=brand, name=name, cost=cost)
...因为品牌、名称和成本可以发送为空/null
如何在不为每个过滤可能性制作过滤行代码的情况下解决此问题?
【问题讨论】:
标签: python django filter django-queryset