Django admin中的自定义过滤器字段

时间:2016-07-13 13:49:54

标签: python django django-admin

我有这样的模特:

class Student(models.Model):
    school_classes = models.ManyToManyField(SchoolClass)
    name = models.CharField(max_length=50)

class SchoolClass(models.Model):
    school = models.ForeignKey(School)
    name = models.CharField(max_length=255)

class School(models.Model):
    name = models.CharField(max_length=255, unique=True)

我想以这种方式修改学生的django管理页面,所以我有两个选择 - 一个用于选择学校,第二个用于选择该学校的课程。

有没有办法在不创建自定义模板和页面的情况下执行此操作?

2 个答案:

答案 0 :(得分:0)

from django.contrib import admin
from app.models import Student

class StudentSchoolClassInline(admin.TabularInline):
    model = Student.school_classes.through

class StudentAdmin(admin.ModelAdmin):
    inlines = [StudentSchoolClassInline]
    exclude = ['student_classes']

admin.site.register(Student, StudentAdmin)

Working with many-to-many models

答案 1 :(得分:0)

最后我没有找到任何简单的解决方案,所以我不得不为ManyToMany Select重写默认的Django小部件。