制作一个下拉列表,过滤掉Django中的某些模型对象

时间:2017-08-09 20:49:36

标签: jquery python django drop-down-menu

我正在尝试创建一个列出特定模型的所有对象的页面,但顶部还有一个下拉列表,根据下拉列表中选择的内容过滤列表。下面是一些示例代码。

models.py

class School(models.Model):
    name = models.CharField(max_length=64)
    slug_name = AutoSlugField(populate_from='name', unique=True)

class Student(models.Model):
    name = models.CharField(max_length=32)
    school = models.ForeignKey(School)

tables.py

class StudentTable(tables.Table):

    class Meta:
        model = Student
        fields = ('name', 'school')
        attrs = {'class': 'table table-hover', 'id': 'accessorycharge_list'}

下面是没有下拉列表的视图。

views.py

def list_students(request):
    student_list = Student.objects.all()
    table = StudentTable(student_list)
    RequestConfig(request).configure(table)
    return render(request, 'students/list_students.html', {'table': table})

在这个例子中,理论上我想在与列表相同的模板中下拉。下拉列表将包含学校的名称。如果未选择任何内容,列表将显示所有学生,但是一旦在下拉列表中选择了学校,列表将被过滤,并且只显示其学校字段与下拉列表中选择的学校相匹配的学生。如何编写视图和/或模板以实现此功能?感谢。

0 个答案:

没有答案