使用和安装Django自定义字段模型

1 投票
3 回答
944 浏览
提问于 2025-04-15 12:58

我找到了一种自定义字段模型(JSONField),我想把它整合到我的Django项目里。

  • 我到底应该把JSONField.py文件放在哪里呢?是放在我的Django项目里,还是放在类似于:/django/db/models/fields/这样的地方?

  • 我想这应该有好几种做法,那这会不会影响到我在models.py文件中导入JSONField(或者其他自定义字段)的方法呢?

3 个回答

0

最好的办法是把Django和你自己做的修改分开。其实你可以把文件放在你Python路径上的任何地方。

2

要记住,Django其实就是Python,所以在Django中自定义的规则和你下载的其他Python库是一样的。要使用一段代码,它必须放在你Python路径下的某个模块里,然后你就可以用 from foo import x 来引入它。

我有时候会在我的Django项目里创建一个 lib 目录,把所有可能需要引入的东西放进去。在这种情况下,我可能会把JSONField的代码放到一个叫 fields 的模块里,因为我可能还会有其他自定义的字段。

因为我知道我的项目已经在Python路径上,所以我可以直接用 from lib.fields import JSONField 来引入,然后在模型定义里就可以用 myfield = JSONField(options) 来创建字段。

1

对于第一个问题,我建议不要把它放在django的目录里,因为如果将来需要升级,你可能会丢失所有的修改。这是一个普遍的道理:修改外部代码会导致维护成本增加。
所以,我建议你把它放在一个可以通过你的python路径访问的地方——可以是你项目中的一个模块,或者直接放在site-packages目录里。

至于第二个问题,单纯地“安装”它并不会影响你现有的模型。
你需要明确地使用它,要么把它添加到所有需要的模型中,要么定义一个使用它的模型,然后让你所有的模型都继承这个模型。

撰写回答