微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用专用访问器为 django 模型创建外键

如何解决使用专用访问器为 django 模型创建外键

我希望工人能够监督其他工人。工人不需要主管。他们无法监督自己。 (我不在乎循环)

我不确定最 django 标准的方法解决这个问题。我可以创建一个自定义的 setter 函数,但我注意到模型仍然有 supervisorsupervisor_id,它们可以直接写入,绕过了我现有的要求。

这是我所拥有的,但它告诉我“AttributeError: 'ForeignKey' 对象没有属性 'setter'”

class Worker(models.Model):
    supervisor = models.ForeignKey(Worker,blank=True,null=True,on_delete=models.CASCADE)

    @supervisor.setter
    def assign_supervisor(self,s_id):
        if s_id == self.id:
            raise Error("can't supervise yourself!")
        self.supervisor_id = s_id
        self.save()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。