如何在 django 中进行复杂的搜索?使用视图还是模型?

Posted

技术标签:

【中文标题】如何在 django 中进行复杂的搜索?使用视图还是模型?【英文标题】:How to make complex searches in django ? Use views or models? 【发布时间】:2021-09-02 01:13:42 【问题描述】:

我想在我的 Django 应用程序上创建一个职位搜索页面。

我现在想知道如何开发这个的最佳实践是什么。

在我的视图中进行所有过滤会更好吗?还是应该在模型中进行所有过滤?

【问题讨论】:

【参考方案1】:

在这种过滤方面没有真正的最佳实践,如果有任何性能差异,那将是非常小的。

这将归结为偏好。如果在整个项目中多次调用此方法,则可以在模型中创建方法,除了这种情况,我个人认为没有理由说明如果它是定制的一次性查询,为什么不能在视图中进行过滤.

希望这可以为您澄清事情。

【讨论】:

感谢@stackdon,澄清了这一点。难道我们不能也创建一个包含查询代码的 utils.py 文件并在多个视图中重用它吗? 你可以这样做,但是在模型中为它​​创建一个方法会更好,因为无论如何你都在调用查询。肯定会使代码更简洁。 如果您要重用大量代码,更简洁的代码是使用utils.py 文件 breadcrumbscollector.tech/stop-naming-your-python-modules-utils

以上是关于如何在 django 中进行复杂的搜索?使用视图还是模型?的主要内容,如果未能解决你的问题,请参考以下文章

Drupal:使用视图快速搜索模块进行复杂过滤/排序

Django

Django-08-admin

Django第二课——ORM

如何使用 QuerySets 和 MySql“全文搜索”在多个字段中进行 Django 搜索?

Django - 模板中的复杂计算