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

django具有相同外键的多个模型

如何解决django具有相同外键的多个模型

我有django应用,该应用正在跟踪各种客户的合同,地点和产品。合同,地点均通过外键引用客户。

class Location(models.Model):
    client = models.ForeignKey(Client,on_delete=models.CASCADE)
    ...

class Contract(models.Model):
    client = models.ForeignKey(Client,on_delete=models.CASCADE)
    ...

我还有一种产品,将根据合同在某个位置为客户部署。我需要在产品中包含客户端,因为该引用用于将记录保护到该客户端。

class Product(models.Model):
    client = models.ForeignKey(Client,on_delete=models.CASCADE)
    contract = models.ForeignKey(Contract,on_delete=models.CASCADE)
    location = models.ForeignKey(Location,on_delete=models.CASCADE)
    ....

确保永不创建在所有3个模型中都包含不同客户参考的产品的最佳方法是什么?我当时以为可以使用pre_save信号,但宁愿使用数据库约束,但我看不到数据库约束可以强制执行此操作。

解决方法

您是否研究了unique_together。我想这会做您想做的事。

还请记住以下几点。

UniqueConstraint提供的功能比unique_together还要多。将来可能不推荐使用unique_together。

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