2016-01-07 24 views
0

我想在我的android應用程序中創建一個由Django後端供電的自動完成框。我在Django中有一個模型,我有很多行(〜5k)。我希望能夠根據名稱(連續的字段)在由此後端支持的Android應用程序中執行自動完成搜索。做這個的最好方式是什麼?在基於django模型的android中實現自動完成

一些細節- 行中的細節可能會隨時更改或更改。 新增加的行將更加頻繁。

我想過發送一個查詢集(當用戶打開一個應用程序時的所有對象)會很慢並且會消耗大量數據。

我不知道如何連續發出請求,並及時處理響應,以便自動填充框填充而不會超載服務器。

任何幫助將不勝感激。

+0

使用ajax並開始建議3個字符後列出最多20個建議? – maazza

回答

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應用程序的數據庫中。然後在android應用程序的數據庫中調用搜索。這樣做的好處是,每次有人在您的應用程序的搜索框中鍵入單詞時,都無需調用API。