Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-在不同的环境中使用不同的模型_Python_Django_Django Models_Architecture_Django Forms - Fatal编程技术网

Python Django-在不同的环境中使用不同的模型

Python Django-在不同的环境中使用不同的模型,python,django,django-models,architecture,django-forms,Python,Django,Django Models,Architecture,Django Forms,我们有一个django应用程序,它的核心是一系列网页,其中包含用户按顺序填写的表单。(我们将带有表单的特定系列页面称为“流”。) 我们将为合作伙伴的此应用程序添加白色标签——合作伙伴将希望添加一些字段,甚至使用自己的新表单添加一些网页。这可能导致填写表格的新顺序。(除了对现有表单/模型或新表单/模型的更改之外,还添加了新的“流程”。) 根据应用程序的运行实例(例如环境变量),扩展现有简单表单和模型结构以使用不同表单和模型的最佳方法是什么?我们思考的一些事情: 为应用程序中的每个模型和表单使用实

我们有一个django应用程序,它的核心是一系列网页,其中包含用户按顺序填写的表单。(我们将带有表单的特定系列页面称为“流”。)

我们将为合作伙伴的此应用程序添加白色标签——合作伙伴将希望添加一些字段,甚至使用自己的新表单添加一些网页。这可能导致填写表格的新顺序。(除了对现有表单/模型或新表单/模型的更改之外,还添加了新的“流程”。)

根据应用程序的运行实例(例如环境变量),扩展现有简单表单和模型结构以使用不同表单和模型的最佳方法是什么?我们思考的一些事情:

  • 为应用程序中的每个模型和表单使用实现类似于get_user_model的功能,这将查看当前环境
  • 实现一个更通用的键值存储,这样我们就不受当前实现的字段类型的约束(即,数据字段名也必须是数据的一部分)
  • 跟踪此特定环境的“流”以及需要使用哪些模型的数据模型
  • 为每个新的白标签实现对现有模型和表单进行子类化
型号现场注入可能就是您要寻找的,请查看

该方法归结为三个概念:

  • 向模型类动态添加字段以确保Django的模型
  • 系统尊重新领域
  • 使负载顺序正确,以使上述各项正常工作
通过
extra\u model\u FIELDS