django autocomplete light,口感清脆

django autocomplete light,口感清脆,django,django-autocomplete-light,Django,Django Autocomplete Light,我正在尝试在表单中的foreignkey字段上实现自动完成搜索。我已经看过了这些文件,但不确定我需要做什么才能让它工作。我只是在foreignkey字段上找到了正常的下拉框 以下是我的尝试: 设置.py INSTALLED_APPS = ( 'crispy_forms', 'autocomplete_light', ) url.py url(r'^autocomplete/', include('autocomplete_light.urls')), models.py cl

我正在尝试在表单中的foreignkey字段上实现自动完成搜索。我已经看过了这些文件,但不确定我需要做什么才能让它工作。我只是在foreignkey字段上找到了正常的下拉框

以下是我的尝试:

设置.py

INSTALLED_APPS = (
    'crispy_forms',
    'autocomplete_light',
)
url.py

url(r'^autocomplete/', include('autocomplete_light.urls')),
models.py

class Client(models.Model):
    ...

class Branch(models.Model):
    client = models.ForeignKey(Client, related_name='clients')
    ...
forms.py

import autocomplete_light

class BranchForm(autocomplete_light.ModelForm):
    class Meta:
        model = Branch
        autocomplete_fields = ('client')
        exclude = ('creation', 'last_modified')
form.html

 <form method="POST" action="">{% csrf_token %}
                            {{ form|crispy }}
                            <input class="btn btn-primary" type="submit" value="Submit" />
                            <a href="{% url 'branch' %}"><button type="button" class="btn btn-danger">Cancel</button></a>
                        </form>
{%csrf\u令牌%}
{{form | crispy}}

最后终于明白了。需要注册它

autocomplete_light.register(Branch,
           name = 'ClientAutocomplete',
           choices = Client.objects.all()
       )

       class ClientForm(forms.ModelForm):
           class Meta:
               model = Client
               exclude = ('creation', 'last_modified')


       class BranchForm(autocomplete_light.ModelForm):
           class Meta:
               model = Branch
               autocomplete_names = {'client':'ClientAutocomplete'}
               exclude = ('creation', 'last_modified')