Как вы допускаете, чтобы вводом был выбор объекта из модели, а также ввод свободного текста в форме Django? - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь создать поле в форме, которая позволяет пользователям выбирать объекты из модели, а также позволяет свободно вводить текст. Я использую django-autocomplete-light. Хотя он отлично подходит для выбора вариантов из модели, я не могу разрешить свободный ввод текста без создания новых объектов перед отправкой формы.

Прежде чем кто-то пометит это как дубликат, я прочитал этот вопрос но он не привел меня к решению.

Вот мои модели.py:

class Person(models.Model):
    name = models.CharField(max_length=255, blank=True, null=True)

Мои формы.py:

class NameForm(forms.ModelForm):
    name = forms.ModelChoiceField(
        queryset=Person.objects.all(),
        widget=autocomplete.ModelSelect2(url='myapp:name-autocomplete')
    )

    class Meta:
        model = Person
        fields = ['name',]

Мои views.py:

class PersonAutoComplete(autocomplete.Select2QuerySetView):
    def get_queryset(self):

        qs = Person.objects.all()

        if self.q:
            qs = qs.filter(name__icontains=self.q)

        return qs

И мои urls.py:

    path(
        'name-autocomplete/',
         PersonAutoComplete.as_view(create_field='name'),
         name='name-autocomplete',
    ),

1 Ответ

0 голосов
/ 07 ноября 2019

Скорее всего, вам не хватает {{ form.media }} в вашем шаблоне

...