求指教 类似于`tag`这种字段怎么用ORM关系表达以支持搜索
比如这样一个模型 model
class Something(models): name = models.Charfield(.....) tags = models.JSONfileld(default=[])
这个tags 字段记录一些 标签信息,是一个字符串的列表 比如 ['tag1', 'tag2', 'tag3']
我想query查询 这张表里有 ‘tag1’的tags 的内容,或者同时['tag1', 'tag2']怎么写filter呢。求助
评论 2
仅为演示所用,按实际要求自行修改
<p>如果是JSONField,可以直接使用 </p> <pre class="codehilite"><code class="language-python">from django.db import models
class Dog(models.Model): name = models.CharField(max_length=200) data = models.JSONField(null=True)
<p>使用:</p> <pre class="codehilite"><code class="language-python">>>> Dog.objects.create(name='Rufus', data={ ... 'breed': 'labrador', ... 'owner': { ... 'name': 'Bob', ... 'other_pets': [{ ... 'name': 'Fishy', ... }], ... }, ... }) <Dog: Rufus> >>> Dog.objects.create(name='Meg', data={'breed': 'collie', 'owner': None}) <Dog: Meg> >>> Dog.objects.filter(data__breed='collie') <QuerySet [<Dog: Meg>]></code></pre>
<p>参考文档:https://docs.djangoproject.com/en/4.0/topics/db/queries/#querying-jsonfield</p>