我确信之前已经提出过这个问题,但我没有找到任何关于管理控制台的信息。
数据库关系如下:主持人可以有多个学生,但学生只有一个主持人(一对多或多对一取决于我们如何看待问题)。以下是我的模型设置:
from django.db import models
# Create your models here.
class Student(models.Model):
host = models.ForeignKey("Host", blank=True, null=True)
fullname = models.CharField(max_length=255, blank=True, null=True)
major = models.CharField(max_length=255, blank=True, null=True)
email = models.CharField(max_length=255, blank=True, null=True)
phone = models.CharField(max_length=255, blank=True, null=True)
country = models.CharField(max_length=255, blank=True, null=True)
interests = models.CharField(max_length=255, blank=True, null=True)
date = models.CharField(max_length=255, blank=True, null=True)
attendance = models.IntegerField(blank=True, null=True)
university = models.CharField(max_length=255, blank=True, null=True)
class Meta:
managed = True
db_table = 'student'
class Host(models.Model):
host_id = models.AutoField(primary_key=True)
fullname = models.CharField(max_length=255, blank=True, null=True)
email = models.CharField(max_length=255, blank=True, null=True)
phone = models.CharField(max_length=255, blank=True, null=True)
address = models.CharField(max_length=255, blank=True, null=True)
max_guests = models.IntegerField(default=5, blank=True, null=True)
preference = models.CharField(max_length=255, blank=True, null=True)
class Meta:
managed = True
db_table = 'person'
我可以使用.host
(例如Student.objects.first().host
)以及django管理控制台的下拉菜单访问学生的主持人。我还可以访问特定主持人的学生列表,如下所示:
list_of_students_of_first_host = Student.objects.filter(host_id=Host.objects.first().host_id)
但我无法从特定主机的学生的管理控制台列表中看到。如果可能的话,如何实现这一目标。任何帮助将不胜感激。
答案 0 :(得分:2)
django admin inline 可让您在主持人的管理页面中显示与主持人相关联的所有学生
https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.TabularInline