2015-10-20 64 views
0

我想用Django選擇django.auth用戶。它會在selectable/organiser_app-userlookup/上與用戶重新調整JSON,但輸入中不會出現自動完成。Django可選和自動完成:自動完成不起作用。我應該添加我自己的JS嗎?

我已經註冊selectableINSTALLED_APPS

INSTALLED_APPS = (
    ... 
    'selectable', 
    ) 

也加入到url.py在基礎項目網址:

url(r'^selectable/', include('selectable.urls')), 

lookup.py是:

 #UserLookup 
class UserLookup(ModelLookup): 
    model = User 
    search_fields = ('first_name__icontains', 'last_name_icontains', 'email_icontains') 

def get_item_value(self, item): 
    # Display for currently selected item 
    return item.username 

def get_item_label(self, item): 
    # Display for choice listings 
    return u"%s (%s)" % (item.username, item.get_full_name()) 

registry.register(UserLookup) 

和查找方式:

class UserLookupForm(forms.Form): 
user_input = forms.CharField(
    label='Type user name, last name or email', 
    widget=selectable.AutoCompleteWidget(lookup_class=UserLookup), 
    required=False, 
) 

我的模板從形式剛剛輸入,它呈現爲:

<form> 
<div class="form-group"> 
    <label class="col-sm-3 control-label" for="id_user_input"> 
    Type user name, last name or email</label> 
<div class="col-sm-6 coll-sm-offset-3"> 
    <input class="form-control" 
    data-selectable-allow-new="false" 
    data-selectable-type="text" 
    data-selectable-url="/selectable/organiser_app-userlookup/" 
    id="id_user_input" 
    name="user_input" 
    placeholder="Type user name, last name or email" title="" 
    type="text" /> 
</div></div> 
<p class="btn btn-default" role="button" 
id="button_add"> 
<span class="glyphicon glyphicon-plus-sign"></span> 
</p> 
</form> 

當我看網址selectable/organiser_app-userlookup/我得到JSON與用戶,所以它看起來像Django的selectble作品。我應該如何使用自動完成功能?我應該將一些JQuery源添加到我的模板中嗎?我只是不明白。

回答

0

好的,問題是沒有處理所有自動完成事件的js腳本。

只需要將JS傳遞給模板模板。 代碼某處指定:

{{ form.media.js }} 

,它將使到:

<script type="text/javascript" src="/static/selectable/js/jquery.dj.selectable.js?v=0.9.0"></script> 

這幫助我。

我只是不知道爲什麼沒有在文檔中提到這一點。