使用专用访问器为 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 (将#修改为@)