python - 将自定义字段添加到 Django 模型(不更改源代码)

标签 python django database-schema

客户想要将自定义字段添加到我们提供的 django 模型中。

他想自己做这件事,不需要编程。

这些东西应该是可添加的:

  • bool (是/否)字段。可选的“未设置”
  • 单选题
  • 多选字段
  • 单行文本域
  • 文本区域
  • 日期

示例:

The customer wants to add a field he calls "was successful". And the field > should have these choices: yes/no/unset. Defaulting to unset.

如果我可以通过创建或扩展模型来做到这一点,事情就会很容易。但在这种情况下,不允许更改源代码:-(

如何解决?

更新

需要支持查询具有给定值的实例。示例:显示“成功”为 True 的所有实例。

最佳答案

您可以在 EAV principle 之后创建一个表(实体属性值)。基本上这是一个包含以下列的非规范化表:
[ID(和/或 slug)、float_value、integer_value、string_value](向该表添加更多列)

现在假设您有一个名为“Member”的现有表。当客户通过您的 UI 添加动态字段时,您可以在此处添加条目并使用“ID”查找给定成员。

关于python - 将自定义字段添加到 Django 模型(不更改源代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35310552/

相关文章:

python - 查询Python的threading.Lock是否加锁

Python sqlite - 在 execute() 方法中引用用法

mysql - Zend Framework 2 中的数据库架构

database - 有效的仓储策略?六型?

python - 有什么理由在 Python 中将代码放在文档字符串之前?

python - numpy.float128 在 Windows 中不存在,但从 OpenGL 调用

python - Django查询ValueError : hour must be in 0. .23

python - 关于Django RadioSelect初始值

Django Python 将文件上传到特定文件夹

ruby-on-rails - 在 Rails 4 中向模型添加属性