Py学习  »  Django

Django Select2中的ModelSelect2Widget中未加载queryset

Dip Kiran Pradhan • 4 年前 • 416 次点击  

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

我什么都看不见

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53026
 
416 次点击  
文章 [ 1 ]  |  最新文章 4 年前
mariotomo
Reply   •   1 楼
mariotomo    4 年前

看来我们错过了 data_url ,或 data_view

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'},
        )
    )