【发布时间】:2018-09-17 16:51:55
【问题描述】:
首先我想说我对 Django 和 Python 非常陌生。
我正在使用 Django 2.0 编写应用程序。我对用户有两个继承:患者和责任 。 患者需要一个用户才能存在和一个负责 strong> 需要一个患者才能存在。一个负责人可能有几个患者,但只有一个患者 > 可能只有一个负责。
但是我遇到了以下问题:患者不能对自己负责,目前这种情况发生了。我怎样才能阻止这种情况发生?
患者模型:
class Patient(models.Model):
user = models.OneToOneField(User, related_name='patient',
on_delete=models.CASCADE, unique=True)
(...)
责任模型:
class Responsible(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,
limit_choices_to=Q(patient=None))
patient = models.ForeignKey(Patient, on_delete=models.CASCADE)
如您所见,我正在使用“limit_choices_to”,但它会导致在我创建新责任人时未列出所有患者用户。
【问题讨论】:
-
@AMG 根据下面的评论,我设法以不同的方式解决了这个问题。无论如何,感谢您的帮助,因为它指导我完成了解决方案。
标签: python django django-admin