基于django模型在android中实现自动完成

时间:2016-01-07 10:41:09

标签: android python django autocomplete

我正在尝试在我的Android应用程序中创建一个由Django后端驱动的自动完成框。我在Django有一个模型,我有很多行(~5k)。我希望能够在我的Android应用程序中根据名称(连续字段)在此后端提供自动完成搜索。这样做的最佳方式是什么?

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

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

我不确定如何连续发出请求并及时处理响应,以便自动填充框填充而不会使服务器超载。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

创建一个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 app的数据库中。然后在android app的db中调用搜索。这样做的好处是,每当有人在您的应用的搜索框中键入单词时,您就不需要调用API。

相关问题