在 Django 中处理外键

dealing with foreign keys in Django

我正在创建一个医生预约系统,我确实也包含了处方

class Prescription(models.Model):
    id = models.UUIDField(default=uuid.uuid4, primary_key=True, editable=False)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    doctor = models.ForeignKey(Doctor, null = True, on_delete=models.SET_NULL)
    clinic = models.ForeignKey(Clinic, on_delete=models.SET_NULL)

我在想如果医生因为某些原因删除了他的账号怎么办,这种情况医生或者诊所可以设置为null吗?

您可以在 models.py 中添加 doctor_nameclinic_name 字段:

class Prescription(models.Model):
    id = models.UUIDField(default=uuid.uuid4, primary_key=True, editable=False)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    doctor = models.ForeignKey(Doctor, null = True, on_delete=models.SET_NULL)
    clinic = models.ForeignKey(Clinic, on_delete=models.SET_NULL)

    doctor_name = models.CharField(max_length=100, blank=False)
    clinic_name = models.CharField(max_length=100, blank=False)

并且每次都加上医生的名字和诊所的名字。然而,这是非常多余的....

实际上,这里是 Whosebug 的数据库模式 -> url
如您所见,OwnerDisplayName 所以帖子仍然有作者姓名。