gpt4 book ai didi

python - 如何同时在模式和无模式模式下使用Django HStore DictionaryField?

转载 作者:行者123 更新时间:2023-12-04 17:58:33 26 4
gpt4 key购买 nike

当我在不传递任何参数的 Django 模型中使用 hstore.DictionaryField() 并在 Djano 管理中注册我的模型时,我可以在管理界面中即时创建新的键值对行。

当我在模式模式下使用相同的字段时 hstore.DictionaryField(schema=['some schema description']) 我得到了在 schema 参数中描述的固定数量的字段.

我能否同时拥有这两种功能,即在模式描述中列出特定类型的多个固定字段,同时还能够添加新字段?

更新

解决这个问题的一种方法是使用两个 DictionaryField 的一个有模式,另一个是无模式的,但这不是最佳解决方案。

最佳答案

答案是否定的,您不能同时使用 hstore 库的当前实现。看一下 init 函数(这是来自他们在 github 上的源代码):

class DictionaryField(HStoreField):
description = _("A python dictionary in a postgresql hstore field.")

def __init__(self, *args, **kwargs):
self.schema = kwargs.pop('schema', None)
self.schema_mode = False
# if schema parameter is supplied the behaviour is slightly different
if self.schema is not None:
self._validate_schema(self.schema)
self.schema_mode = True
# DictionaryField with schema is not editable via admin
kwargs['editable'] = False
# null defaults to True to facilitate migrations
kwargs['null'] = kwargs.get('null', True)

super(DictionaryField, self).__init__(*args, **kwargs)

您可以看到,如果设置了架构,则该字段的可编辑参数设置为 false,这是 Django 管理员查看的内容,以查看您是否应该被允许在管理 UI 中编辑该值。

不幸的是,您只有几个选择:通过创建您自己的继承自那个类的类来自己覆盖它,或者在他们的 github 页面上打开一个拉取请求或问题,并希望有人能得到它。

关于python - 如何同时在模式和无模式模式下使用Django HStore DictionaryField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38247129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com