Django:来自管理控制台

时间:2017-10-25 05:43:02

标签: python django

我确信之前已经提出过这个问题,但我没有找到任何关于管理控制台的信息。

数据库关系如下:主持人可以有多个学生,但学生只有一个主持人(一对多或多对一取决于我们如何看待问题)。以下是我的模型设置:

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)

但我无法从特定主机的学生的管理控制台列表中看到。如果可能的话,如何实现这一目标。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

django admin inline 可让您在主持人的管理页面中显示与主持人相关联的所有学生

https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.TabularInline