我有两个模型Variant
,这是不相关的,除了它有id
和SecondModel
有一个JSONField
和第一个模型的id
的序列化列表。
我想获取第二个模型对象的Variant
模型对象的查询集,该对象的id位于第二个模型对象的JSONField
列表中。
我设法做到的是:
class SecondModel(Model):
variant_ids = JSONField()
@property
def variant_id_list(self):
return json.loads(self.variant_ids or "[]")
@property
def variants(self):
return Variant.objects.filter(id__in=self.variant_id_list)
但是上面的aproach强制Django和Postgres从DB获取variant_ids
,然后将其转换为python列表,然后再次请求DB检查列表中是否有id,而(我认为)DB本身可以处理整个操作。
有没有更简单的方法呢?
我不能将JSONField
更改为ArrayField
或任何其他,它必须是JSONField
目前没有回答
相关问题 更多 >
编程相关推荐