title: Am I able to classify models with folders on django admin dashboard?
body: <p>I'm fresh of the django boat, working on a project that need to do 'one to many'. Here's what I'm trying to make my admin dashboard look like: </p>
  
  <ul>
  <li>Patients
  
  <ul>
  <li>Patient001
  
  <ul>
  <li>Profile</li>
  <li>Record</li>
  <li>Inputoutput
  
  <ul>
  <li>Day1</li>
  <li>Day2</li>
  </ul></li>
  </ul></li>
  <li>Patient002
  
  <ul>
  <li>Profile</li>
  <li>Record</li>
  <li>Inputoutput
  
  <ul>
  <li>Day1</li>
  </ul></li>
  </ul></li>
  </ul></li>
  </ul>
  
  <p>The "Patient", "Profile", "Record", "Inputoutput" are all models and related with a foreign key "name" in "Patient" model. I hope to achieve to add or edit the data in each model by clicking in folders on django admin dashboard. How should I do this. I've been googling for days. What I found that looks like I'm looking for is a "custom django admin dashboard", but still not sure how to do this. Anyone has an idea? =)</p>
  
  <p>What I want to achieve is: </p>
  
  <p>first>> create a "Patient" model (admin create a Patient Folder shows on dashboard) </p>
  
  <p>then>> create a "Profile" model (click into the Patient Folder we just create and add a Profile model)</p>
  
  <p>I want all these created models to show in levels of folders on admin, and you can just click in to the folders to add or edit instead of all of the registered models showing together on the very first page of admin.</p>
  
  <p>Here are my models:</p>
  
  <p>--patient.py--</p>
  
  <pre><code>from django.db import models
  
  class Patient(models.Model):
  name = models.CharField(default="", max_length=200)
  
  def __str__(self):
      return self.name
  
  class Meta:
      app_label = 'vsform'
  </code></pre>
  
  <p>--profile.py--</p>
  
  <pre><code>from django.db import models
  from django.utils import timezone
  import datetime
  
  class Profile(models.Model):
  patient = models.ForeignKey('Patient', on_delete=models.CASCADE)
  
  name = models.CharField(max_length=200)
  record_number = models.CharField(max_length=200)
  bed_number = models.CharField(max_length=200)
  gender = models.CharField(max_length=1, choices=(('男', '男'), ('女', '女')))
  operation_date = models.DateTimeField(default=timezone.now)
  chart_start_time = models.IntegerField(default=4)
  
  class Meta:
      app_label = 'vsform'
  
  def __str__(self):
      return self.name
  </code></pre>
  
  <p>--record.py--</p>
  
  <pre><code>from django.db import models
  
  class Record(models.Model):
  patient = models.ForeignKey('Patient', on_delete=models.CASCADE)
  
  blood_pressure_day1_1 = models.CharField(max_length=200, blank=True)
  blood_pressure_day1_2 = models.CharField(max_length=200, blank=True)
  blood_pressure_day2_1 = models.CharField(max_length=200, blank=True)
  blood_pressure_day2_2 = models.CharField(max_length=200, blank=True)
  blood_pressure_day3_1 = models.CharField(max_length=200, blank=True)
  blood_pressure_day3_2 = models.CharField(max_length=200, blank=True)
  blood_pressure_day4_1 = models.CharField(max_length=200, blank=True)
  blood_pressure_day4_2 = models.CharField(max_length=200, blank=True)
  blood_pressure_day5_1 = models.CharField(max_length=200, blank=True)
  blood_pressure_day5_2 = models.CharField(max_length=200, blank=True)
  height_day1 = models.CharField(max_length=200, blank=True)
  weight_day1 = models.CharField(max_length=200, blank=True)
  height_day2 = models.CharField(max_length=200, blank=True)
  weight_day2 = models.CharField(max_length=200, blank=True)
  height_day3 = models.CharField(max_length=200, blank=True)
  weight_day3 = models.CharField(max_length=200, blank=True)
  height_day4 = models.CharField(max_length=200, blank=True)
  weight_day4 = models.CharField(max_length=200, blank=True)
  height_day5 = models.CharField(max_length=200, blank=True)
  weight_day5 = models.CharField(max_length=200, blank=True)
  special_drug1 = models.CharField(max_length=200, blank=True)
  special_drug2 = models.CharField(max_length=200, blank=True)
  special_drug3 = models.CharField(max_length=200, blank=True)
  special_drug4 = models.CharField(max_length=200, blank=True)
  exam1 = models.CharField(max_length=200, blank=True)
  exam2 = models.CharField(max_length=200, blank=True)
  exam3 = models.CharField(max_length=200, blank=True)
  exam4 = models.CharField(max_length=200, blank=True)
  exam5 = models.CharField(max_length=200, blank=True)
  exam6 = models.CharField(max_length=200, blank=True)
  exam7 = models.CharField(max_length=200, blank=True)
  exam8 = models.CharField(max_length=200, blank=True)
  exam9 = models.CharField(max_length=200, blank=True)
  exam10 = models.CharField(max_length=200, blank=True)
  
  def __str__(self):
      return self.patient.name
  
  class Meta:
      app_label = 'vsform'
  </code></pre>
  
  <p>--inputoutput.py--</p>
  
  <pre><code>from django.db import models
  
  class InputOutput(models.Model):
  patient = models.ForeignKey('Patient', on_delete=models.CASCADE)
  
  def __str__(self):
      return self.patient.name
  
  class Meta:
      app_label = 'vsform'
  </code></pre>
  
  <p>--day.py--</p>
  
  <pre><code>from django.db import models
  
  
  class Day(models.Model):
  inputoutput = models.ForeignKey('InputOutput', on_delete=models.CASCADE)
  
  day_number = models.SmallIntegerField(default=0)
  injection_7to3 = models.IntegerField(default=0)
  injection_3to11 = models.IntegerField(default=0)
  injection_11to7 = models.IntegerField(default=0)
  food_7to3 = models.IntegerField(default=0)
  food_3to11 = models.IntegerField(default=0)
  food_11to7 = models.IntegerField(default=0)
  transfusion_7to3 = models.IntegerField(default=0)
  transfusion_3to11 = models.IntegerField(default=0)
  transfusion_11to7 = models.IntegerField(default=0)
  excrete_times_7to3 = models.SmallIntegerField(default=0)
  excrete_times_3to11 = models.SmallIntegerField(default=0)
  excrete_times_11to7 = models.SmallIntegerField(default=0)
  urine_7to3 = models.IntegerField(default=0)
  urine_3to11 = models.IntegerField(default=0)
  urine_11to7 = models.IntegerField(default=0)
  vomit_7to3 = models.IntegerField(default=0)
  vomit_3to11 = models.IntegerField(default=0)
  vomit_11to7 = models.IntegerField(default=0)
  drain_7to3 = models.IntegerField(default=0)
  drain_3to11 = models.IntegerField(default=0)
  drain_11to7 = models.IntegerField(default=0)
  
  def __str__(self):
      return "Day " + str(self.day_number)
  
  class Meta:
      app_label = 'vsform'
  </code></pre>
  
  <p>And here's admin.py</p>
  
  <p>--admin.py--</p>
  
  <pre><code>from django.contrib import admin
  from .models.patient import Patient
  
  admin.site.register(Patient)
  </code></pre>