Работа с внешними ключами в 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, если это произойдет?
Вы можете добавить поля doctor_name
и clinic_name
в ваш models.py:
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)
И каждый раз добавлять имя врача и название клиники. Однако это очень избыточно....
На самом деле, вот схема базы данных stackoverflow -> url.
Как вы можете видеть, здесь есть OwnerDisplayName
, так что посты все еще имеют имя автора.