【问题标题】:Patient user can be Responsible from himself - Django Admin患者用户可以自己负责 - Django Admin
【发布时间】: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


【解决方案1】:

我设法解决了这个问题:

在我的负责任的模型中,我添加了以下几行:

    def clean(self):
    if self.user == self.patient.user:
        raise ValidationError(_("A patient can not be responsible for himself"))

所以现在患者不再可能对自己负责。

【讨论】:

    猜你喜欢
    • 2020-08-09
    • 2021-05-14
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多