[英]Display Objects Related Objects Reference In Django Admin
我有两个具有一对多关系的类:
class Teacher(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
class Student(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE, related_name='students', default=None, null=True)
在 Django 教师的管理页面(这是-> /admin/users/teacher/,不是这个-> /admin/users/teacher/1/change/)我想:
或者
我通常会使用以下内容向此页面添加字段:
class StudentAdmin(admin.ModelAdmin):
list_display = ('user', 'teacher',)
但由于这是一个一对多的关系并且我正在访问“多”,我迷路了。
谢谢你。
如果您想将学生人数添加到教师列表视图,您可以添加一个只读字段(与更改视图相同)
class StudentAdmin(admin.ModelAdmin):
list_display = ('user', 'teacher','student_count')
def student_count(self, obj):
return obj.students.count()
这应该可以解决问题。
在这种情况下, obj
指的是每一行中Teacher
object 的具体实例。 您可以调整上面的 function 以返回学生列表。 不过,我不确定这在Teacher
列表视图页面上看起来是否特别好。 最好把它放在可以轻松放在一排的东西上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.