自定义过滤器后端还是Django-Filter?

mklgxw1f  于 2023-04-13  发布在  Go
关注(0)|答案(1)|浏览(132)

我在一个使用DRF的简单Django项目上工作,遇到了一个小问题。我想在我的API端点上添加过滤和搜索,但我不知道哪种方式更好:
1.为过滤和搜索逻辑制作自定义过滤器后端。
1.使用Django-Filter包完成此任务。
下面是我的部分代码:

from django.db import models
from rest_framework import viewsets, filters

class MyModel(models.Model):
    title = models.CharField(max_length=255)
    description = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

class MyModelViewSet(viewsets.ModelViewSet):
    queryset = MyModel.objects.all()
    serializer_class = MyModelSerializer
    filter_backends = [filters.SearchFilter]
    search_fields = ['title', 'description']

我只是想知道,哪种方法更好的性能,易于维护,并遵循最佳实践?你能告诉我这两种方法的优点和缺点以及我可能遇到的任何问题吗?例如,如果我做自定义过滤器后端,如何使它好?如果我选择Django-Filter,是否有问题或限制我应该知道?
我非常感谢任何帮助和建议!

gojuced7

gojuced71#

这取决于你的情况。大多数时候我会使用维护的包。这样,如果有bug或更新,包将在需要时更新。当你需要高度特定的过滤时,大多数时候写自己的更好。
为了提高性能,大多数时候你应该使用容易和快速实现的方法。当你的应用程序增长时,你会自动看到哪些部分慢了,你可以具体地修复这些部分。这样你就可以保持项目的势头。黄金法则是开发速度和可维护性应该优先于性能。只有当性能成为问题时,你才应该更新那部分。

相关问题