django - 如何使用 Django 过滤器根据键值对从 postgres JSON 字段中检索这些行
问题描述
在 Django 中,我有一个模型:
class NewModelItem(models.Model):
model = models.ForeignKey(to=NewModel, on_delete=models.CASCADE, related_name='new_model_item')
field_data = models.JSONField()
link_data = models.JSONField(null=True)
并喜欢检索:
3 {"name": "105000-001-001", "customer_name": "belangrijk sample"} 4 {"index": 4, "project": [1]}
6 {"name": "105000-001-002", "customer_name": "nog een belangrijk sample"} 4 {"index": 4, "project": [1]}
基于最后一个字段(即 link_data 字段),特别是当项目包含 1 时。
我尝试将其作为整数而不是数组,但下面的过滤器不会以任何方式检索它们。
lookup = 'link_data__project'
related_model = 4 # this is the field before link_data
id = 1
data = NewModelItem.objects.filter(**{lookup: id, 'model': related_model})