擅长:python、mysql、java
<p>我对Django最大的问题是,他们似乎通过添加<strong>表单</strong>层来打破MVC模式。大多数文档都会引导您将验证逻辑放在表单中,而模型验证程序仅由<strong>form</strong>saves调用这一事实只会加强这一约定。但在我看来,这是一个不好的约定,因为毕竟,经常被验证的是将转换为模型的数据。</p>
<p>最好的例子是,如果您考虑使用Django Rest框架将传统的Django项目转换为以API为中心的项目,并使用一个单独的前端客户机来使用这个API。与只保留模型的完整性和保留大量业务逻辑不同,您将不得不遍历表单并将所有逻辑移到序列化器中(不幸的是,Django Rest框架也遵循Django已损坏的MVC模式并添加了一个额外的“序列化器”层)。</p>
<p>我认为胖模型的方法是一条路要走。有关如何在Django<a href="https://softwareengineering.stackexchange.com/questions/90808/are-django-forms-violating-mvc">here</a>中实现它的更多信息。</p>