python - 不确定我应该使用什么类型的 Django 表单

标签 python django forms

我有一个 Author 模型,MySQL 数据库中有 200k 个实例。我想让用户搜索作者的唯一 ID(这是一个字符串),然后选择一个 ID,然后生成有关该作者的表格和小图形。

我想使用 charfield 模型表单吗?另外,有内置的搜索功能吗?

最佳答案

我认为 Django 没有内置的搜索功能。为此,您必须使用其扩展之一(django-search 或 haystack)。

对于您的情况来说,它们可能看起来太复杂,所以我会选择更简单的解决方案(并且我会放弃使用表单):

from django.views.generic import ListView
from django.db.models import Q
from .models import Author

def SearchAuthorView(ListView):

  def get_queryset(self):
    name = self.request.GET['author_name']
    name_tokens = name.split(' ')

    matched_authors = []
    authors = Author.objects.all()
    for author in authors:
      for name_token in author.name.split(' '):
        if name_token in name_tokens:
          matched_authors.append(author)
          break
    return matched_authors

使用 200k 时,您可能会遇到性能问题,因此如果遇到这种情况,您应该使用优化的原始 MySql 查询。

您可能还想以某种方式订购您的结果。例如,姓氏匹配的优先级高于名字匹配的优先级。

关于python - 不确定我应该使用什么类型的 Django 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25007834/

相关文章:

python - 在共享虚拟主机服务器上使用 wsgi 和 virtualenv 部署 Django 项目,无需 root 访问权限

python - 如何在 Django 中结合过滤和分页?

python - 无法理解的 Django Runserver 错误

PHP 使用提交按钮循环遍历 MySQL 表

reactjs - 当SimpleForm在react-admin应用程序中无效时,如何禁用SaveButton?

python - 通过 Python 在 MPI_Init 中启动 Open MPI 时出错

python - 找不到 python xlrd 版本

python - Pyglet:on_draw 中的变量

json - django:表单到 json

javascript - 使用数据属性计算输入字段