набор запросов не загружен в ModelSelect2Widget в Django Select2 - PullRequest
1 голос
/ 18 марта 2019

Вот моя база данных:

class Student(models.Model):
    name = models.CharField(max_length=25)

class Subject(models.Model):
   title=models.CharField(max_length=25)
   marks = models.FloatField()
   student = models.ForeignKey(
        Student,
        related_name='student',
        on_delete=models.PROTECT,
    )

Теперь я хочу использовать Django select 2 для просмотра этих деталей в админ-панели Django.

Вот моя форма:

class AddressForm(forms.ModelForm):
    student = forms.ModelChoiceField(
        queryset=Student.objects.all(),
        widget=ModelSelect2Widget(
            model=Student,
            search_fields=['name__icontains'],
        )
    )

    subject = forms.ModelChoiceField(
        queryset=Subject.objects.all(),
        widget=ModelSelect2Widget(
            model=Subject,
            search_fields=['title__icontains'],
            dependent_fields={'student': 'student'},
        )
    )

Я хочу выбрать каждого студента и выбрать каждый предмет, но я получаю следующий вывод:

My Output

Я не могу ничего просматривать

1 Ответ

0 голосов
/ 01 мая 2019

Похоже, мы пропустили настройку data_url или data_view. Если вы используете входящий в комплект административный модуль django, вы можете просто так:

class AddressForm(forms.ModelForm):
    student = forms.ModelChoiceField(
        queryset=Student.objects.all(),
        widget=ModelSelect2Widget(
            data_url='/admin/<your_app_name>/student/autocomplete/',
            model=Student,
            search_fields=['name__icontains'],
        )
    )

    subject = forms.ModelChoiceField(
        queryset=Subject.objects.all(),
        widget=ModelSelect2Widget(
            data_url='/admin/<your_app_name>/subject/autocomplete/',
            model=Subject,
            search_fields=['title__icontains'],
            dependent_fields={'student': 'student'},
        )
    )
...