django - 如何在Django中与对象属性的多对多关系强制唯一性?
问题描述
假设我有以下模型:
from django.db import models as db
class Item(db.Model):
containers = db.ManyToManyField(Container)
name = db.CharField(max_length=100)
class Container(db.Model):
name = db.CharField(max_length=100)
我相信有一个自动约束,即 Item 和 Container 只能关联一次。从Django 文档开始:
如果您不希望同一实例之间存在多个关联,请添加包含 from 和 to 字段的 UniqueConstraint。Django 自动生成的多对多表包含这样的约束。
但是,我还想要一个约束,即同名的两个项目不能在同一个容器中。
我该如何执行?也许在模型级别是不可能的?或者可能是直通模型上的预保存信号?
解决方案
推荐阅读
- java - 寻找日期格式的最佳正则表达式模式
- python - 从文件夹中读取 JSON 文件并将其存储到 CSV 文件中
- javascript - 这段代码是什么意思?是匿名函数吗?
- python - 值的百分比矩阵与按列的条件分组的值的总和
- php - 对 tFPDF 的阿拉伯语支持(基于 fpdf)
- vb.net - VB.Net AES 加密值与 http://extranet.cryptomathic.com/aescalc/index 不匹配
- c++ - C++ WINAPI 在挂载的 VHD 上创建多个分区
- c++ - 使用所有测试用例将十进制数转换为二进制数
- python - 虽然循环没有中断?
- typescript - 泛型的自动类型解析