#django #jquery-select2
#django #jquery-select2
Вопрос:
Вот моя база данных:
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'},
)
)
Я хочу выбрать каждого ученика и выбрать каждый предмет, но я получаю этот вывод:
Я ничего не могу просмотреть
Комментарии:
1. Можете ли вы также поделиться своим HTML
2. на самом деле я пытаюсь сделать это через admin.py . Необходимо ли создавать HTML-файл?
3. я чувствую, что мой набор запросов не загружен, можете ли вы помочь мне с этим
4. вам удалось это решить? ваш пример был тем, что приблизило меня к тому, чтобы увидеть что-либо вообще. Я делаю это из собственного html, но там нет html, это просто объект формы, обработанный средством визуализации и переведенный в строку.
5. может быть полезным, это созданный html:
<tr><th><label for="id_accession">Accession:</label></th><td><select name="accession" class="django-select2 django-select2-heavy" data-ajax--type="GET" id="id_accession" data-minimum-input-length="0" data-ajax--cache="true" data-allow-clear="false" data-ajax--url="/select2/fields/auto.json" data-field_id="MTQwNTE1NzY1Mzg1OTI4:1hLpuc:1suqrRkIuJPapaosXDsnKE3P_Pw" required></select></td></tr>
Ответ №1:
Похоже, нам не хватало параметра data_url
, или data_view
. Если вы используете входящий в комплект модуль django admin, вы можете просто поступить следующим образом:
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'},
)
)