gpt4 book ai didi

python - 实际上无法找到 from_db_value 在 django 源代码中的工作原理?

转载 作者:行者123 更新时间:2023-12-03 01:13:08 25 4
gpt4 key购买 nike

我的模型中有一些字段,我试图在所有字段上应用加密。每个字段加密取决于同一模型类中其他两个字段的值。我能够实现加密数据。但我还需要同一类中的其他两个字段来解密函数 def from_db_value(self, value, expression, connection, *args) 返回的其他字段值。

我已阅读the docs和源代码,但我在 from_db_value(self, value, expression, connection, *args) 中没有看到对以下参数的正确解释:

  1. 表达式
  2. *args

我想知道我们如何以及在哪里提供这些参数。我们还可以如何使用该功能。我知道该函数应该返回数据库中的值,并将其转换为适当的 python 对象。但我想知道它还能做什么或者我们可以用它做什么?

P.S:是的,我正在尝试制作自定义字段类。灵感:django-fernet-fields

最佳答案

我不知道你想在兔子洞里走多远,但这也许有帮助。您可能已经发现 from_db_valuedjango.db.models.fields.__init__.py 第 708 行的 Field 类中使用。此处作为一种 Hook 特定数据库模型的值转换的方法。例如,它用于转换为 native PostGreSQL 数组字段。

如果您深入挖掘,您会发现这些转换器由 django.db.models.sql.compiler.py 第 1084 行中的 SQLCompiler 类使用。依次由其下面的 results_iter 调用。

我注意到how-to guide没有提到在方法定义中使用和 *args 参数。所以我不知道它是从哪里来的。

关于python - 实际上无法找到 from_db_value 在 django 源代码中的工作原理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60560775/

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