自定义django字段类型,在SELECT部分​​

时间:2017-10-18 07:32:59

标签: django django-orm

我想实现一个自定义的Django字段类型。即使用postgres由本机json / jsonb支持的TranslatedField。

但我也希望不必返回特定查询的所有翻译。像这样:

class TranslatedField(JSONField):
    pass


class MyModel(models.Model):

    name = TranslatedField()

然后用在一个例子中:

>>> MyModel.objects.create(name={'en': 'Duck', 'fr': 'Canard'})
>>> set_language('fr')  # Imagine this function sets a global variable
>>> en_fr = MyModel.objects.get(id=1)
>>> en_fr.name
>>> 'Canard'

哪个好,我可以通过返回整个名字来做到这一点。来自数据库的json。但我更愿意,如果django发布了这样的实际SQL,它在postgres中进行了查找并在网络中保存了一些字节:

SELECT 'name'->'fr' FROM 'mymodel';

Django是否有任何钩子可以让我动态地改变' SELECT'部分查询?

0 个答案:

没有答案