【发布时间】:2019-09-16 01:17:30
【问题描述】:
我正在使用 Django 2.1,我很难弄清楚如何在 Admin 上显示关系。 我有两个示范医院和单位,第三个是考试。他们是这样设置的,医院可以有多个单元,一个单元属于一个医院。并且考试模型具有考试名称和医院名称等考试属性。
class Hospital(models.Model):
name = models.CharField(max_length=200)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class Unit(models.Model):
unit_name = models.CharField(max_length=200)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
parent_company = models.ForeignKey(
Hospital, related_name='unit_parent', on_delete=models.CASCADE, verbose_name="Hospital")
class Exam(models.Model):
unit_name = models.ForeignKey(
Hospital, related_name='hospital_pk', on_delete=models.CASCADE)
exam_name = models.CharField(max_length=255, blank=True,
null=True, verbose_name="Exam's name")
date = models.DateField()
time = models.TimeField()
def __str__(self):
return self.exam_name
class CustomExamAdmin(admin.ModelAdmin):
model = Exam
list_display = ('exam_name', 'time', 'alert',
'document', 'notes', 'report', 'patients_name', 'unit_name')
list_filter = ('exam_name', 'time')
list_select_related = ('unit_name',)
fieldsets = (
("Hospital's Name:", {
'fields': ('unit_name',)}),
('Types of Exams:', {
'fields': ('exam_name', 'modality', 'model_used')}),
("Patient's name:", {
'fields': ('patients_name',)}),
)
因此,在管理员的考试页面中,我可以选择医院名称,但我无法选择属于医院的单位。我需要选择医院以及所属的单位。 我是否应该在考试中添加另一个外键,如下所示: unit_selected = models.ForeignKey( 单位,related_name='unit_pk', on_delete=models.CASCADE)
例如:医院:布鲁克代尔大学医院 单位:市区单位
我得到了什么: enter image description here
【问题讨论】:
-
你看到了什么?可以打印屏幕吗?我猜你可以做类似
unit_name__name的事情,但如果没有看到就很难说 -
感谢您与我们联系,我刚刚添加了屏幕截图。我想要的是选择医院和单位白色试图创建一个考试。
标签: django django-models django-admin django-admin-filters