@nurzhannogerbek

Как создать автозаполнение для полей?

Здравствуйте! Помогите пожалуйста разобраться.

В своем Джанго приложении у меня есть модальное окно с формой, где есть три поля. Пытаюсь использовать для первого поля автозаполнения с помощью JQuery UI Autocomplate. Использовал следующий код, но не работает. Подскажите пожалуйста где совершил ошибку и как её исправить? Также необходимо с помощью первого поле, после того как пользователь выберет значение автозаполнять второе поле в зависимости от от первого поля. Как сделать такого рода автозаполнение? В первое поле нужно автозаполнять значениями из user_class и в зависимости от этого ставить во второе поле значение из user_symbol.

models.py:
class UserDictionary(models.Model):
    user_class = models.CharField(_('Class'), max_length=250)
    user_symbol = models.CharField(_('Symbol'), max_length=250)
    user_name = models.TextField(_('Description'))


forms.py:
class UserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('user_class', 'user_symbol', 'user_name')

    def __init__(self, *args, **kwargs):
        super(UserForm, self).__init__(*args, **kwargs)
        self.fields['user_class'].widget = TextInput(attrs={'id': 'user-class'})
        self.fields['user_symbol'].widget = TextInput(attrs={'id': 'user-symbol'})


HTML:
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>


JAVASCRTIPT:
$(function() {
  $("#user_class").autocomplete({
    source: "/user_autocomplete/",
    minLength: 2
  });
});


urls.py:
url(r'^user_autocomplete/$', user_autocomplete, name='user_autocomplete'),


views.py:
def user_autocomplete(request):
    if request.is_ajax():
        word = request.GET.get('term', '')
        users = UserDictionary.objects.filter(user_class__icontains=word)
        results = []
        for user in users:
            user_json = {'label': user.user_class, 'value': user.user_class}
            results.append(user_json)
        data = json.dumps(results)
    else:
        data = 'fail'
    mimetype = 'application/json'
    return HttpResponse(data, mimetype)
  • Вопрос задан
  • 1371 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы