В Django, как связать выпадающий список с данными из другой таблицы, используя внешний ключ?
model.py
class LabTable(models.Model):
LabNo = models.AutoField(primary_key=True)
Pid = models.IntegerField()
Weight = models.IntegerField()
DoctorId = models.ForeignKey(DoctorTable,on_delete=models.CASCADE)
Date = models.DateField()
Category = models.CharField(max_length=50)
PatientType = models.CharField(max_length=50)
Amount = models.IntegerField()
1.Здесь я создал модель лаборатории и внешний ключ с таблицей врачей. Я хочу использовать таблицу doctor для представления данных в выпадающем списке.
Вы можете указать, как показывать объект модели DoctorTable
, реализуя метод __str__
для этой модели, так:
class DoctorTable(models.Model):
DoctorId = models.AutoField(primary_key=True)
DoctorName = models.CharField(max_length=50)
Department = models.CharField(max_length=100)
def __str__(self):
return self.DoctorName
Примечание: обычно имена полей в модели Django записываются в snake_case, а не PascalCase, поэтому должно быть:
doctor_name
вместо.DoctorName
Примечание: Модели обычно не имеют суффикса
.Table
. Модель - это не таблица, она хранится в реляционной базе данных как таблица, но даже тогда она имеет дополнительную логику, такую как валидаторы, менеджеры и т.д.