【问题标题】:Implementing autocomplete in android based on django model基于django模型在android中实现自动完成
【发布时间】:2016-01-07 20:43:10
【问题描述】:

我正在尝试在由 Django 后端提供支持的 Android 应用程序中创建一个自动完成框。我在 Django 中有一个模型,其中有很多行(~5k)。我希望能够根据名称(一行中的字段)在由该后端支持的我的 android 应用程序中进行自动完成搜索。最好的方法是什么?

一些细节- 行中的详细信息可能会不时更改或更改。 添加新行的频率会更高。

我曾考虑过发送查询集(用户打开应用程序时包含所有对象)会很慢并且会消耗大量数据。

我不确定如何连续发出请求并及时处理响应,以便在不使服务器过载的情况下填充自动完成框。

我们将不胜感激。

【问题讨论】:

  • 使用 ajax 并在 3 个字符后开始提出建议,并列出最多 20 个建议?

标签: android python django autocomplete


【解决方案1】:

制作一个API,它将被android应用程序定期调用,它将提供数据库中所有更新的数据。 API 的输入将是最后一次 API 调用时间。因此 API 将提供该日期时间的更新对象。为此,您需要在模型中添加一个字段,即:

class YourModel(models.Model):
    last_updated = models.DateTimeField(auto_now=True)
    # Rest of the fields.

因此,当您使用最后一次 api 调用时间访问 API 时,您将在后端运行此查询:

query = YourModel.objects.filter(last_updated__gte = last_api_call_time)

然后将所有更新的数据存储在 android 应用的数据库中。然后在 android app 的 db 中调用搜索。这样做的好处是每次有人在您的应用的搜索框中输入单词时,您都不需要调用 API。

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 2016-06-23
    • 2011-09-22
    相关资源
    最近更新 更多