В 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. Модель - это не таблица, она хранится в реляционной базе данных как таблица, но даже тогда она имеет дополнительную логику, такую как валидаторы, менеджеры и т.д.

.
Вернуться на верх