1

フォームの 1 つに autocomplete-light をインストールしようとしています。このエラーが発生し続けます:

Institution not registered, you have registered: ['InstitutionAutocomplete']

コードのどこにも InstitutionAutocopmlete を宣言または登録していないため、このエラーをトリガーする方法がわかりません。

私は次のフォームを持っています:

class AddUserAccountsForm(forms.ModelForm):
    """
    Form for adding new user financial accounts.

    """
    required_css_class = 'required'
    name = forms.ModelChoiceField(required=True, queryset=Institution.objects.all(), widget=autocomplete_light.ChoiceWidget('Institution'))
    user_accounts_name = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'User Name'}), label="")
    user_accounts_password = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Password'}), label="")

class Meta:
    model = Institution
    fields = ('name','user_accounts_name', 'user_accounts_password',)

これは私の autocomplete_light_registry.py にあります:

autocomplete_light のインポート

from models import Institution

autocomplete_light.register(Institution,
    search_fields = ['name'],
    attrs={
        'placeholder':'Find your institution',
        'data-autocomplete-minimum-characters':1,
    },
    widget_attrs={
        'data-widget-maximum-values':4,
        'class':'modern-style',
    },
)

これが私のhtmlです。コードが {{ form.as_p}} を実行すると、エラーが発生します。

{% load staticfiles %}
<script type="text/javascript" src="{% static 'jquery.js' %}">
</script>
{% include 'autocomplete_light/static.html' %}

<form action="" method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Submit" />
    <input type="hidden" name="next" value="{{ next }}" />
</form>

urls.py は次のとおりです。

url(r'^profile/add_user_accounts/', UserAccountsUpdate.as_view(), name='add_user_accounts'),
4

1 に答える 1

1

フォームでは、「Institution」の代わりに「InstitutionAutocomplete」を使用する必要があります

name = forms.ModelChoiceField(required=True, 
                              queryset=Institution.objects.all(), 
                              widget=autocomplete_light.ChoiceWidget('InstitutionAutocomplete'))
于 2015-12-10T12:33:59.613 に答える