我正在尝试让我的 Django 应用程序遵循比目前更好的做法。我经常听说胖模型和瘦 Controller (在最初将我的大部分显示逻辑放在 views.py
中之后)。
无论如何,假设我有一个中等复杂的表单,用于创建新对象,包括新对象的外键。假设没有验证错误,创建/链接模型的逻辑应该放在哪里? is_valid()
之后的 views.py
似乎是最容易放置的地方,但我不确定这是否被认为是最佳实践。
最佳答案
在问题标题中,您将其描述为“表单处理逻辑”,但从您的问题文本听起来,您的意思确实是模型间业务逻辑。
如果是表单处理逻辑(清理等),那应该放在表单上。
因为这听起来像是在谈论业务逻辑,所以通常应该将其作为模型方法 ( Django docs on model methods ) 添加到适当的模型中,然后从自定义表单逻辑中调用(例如,在 save
) 或来自 View 。
当然,代码所在的位置在很大程度上取决于模型之间的关系结构。假设您有一个与书籍模型具有一对多关系的作者模型。作者模型可能有一个方法可以帮助您创建一个新的书籍对象,同时填充外键关系。更复杂的关系可能需要更多的 View 代码,或者至少需要更多的思考。
是的,一般来说,尝试让您的 View 更 slim ,让您的模型更胖是个好主意。
关于python - Django 最佳实践 - 表单处理逻辑(用于创建/更新模型)应该放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22306051/