python - 当定义了两个不同的 ForeignKey 和 unique_together 时,如何减少一个 ForeignKey 的选项?
问题描述
我有三个模型Product
,ClothColor
和Color
。
# products/models.py
class Product(models.Model):
...
class Color(models.Model):
...
class ClothColor(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
color = models.ForeignKey(Color, on_delete=models.CASCADE)
...
class Meta:
unique_together = ('product', 'color',)
我想只允许产品和颜色的一种组合ClothColor
,所以我unique_together
在Meta
课堂上使用过。此约束工作正常。
现在,我用于在管理面板TabularInline
中显示ClothColor
,因此添加产品及其颜色变化会更容易。
# products/admin.py
class ClothColorInline(admin.TabularInline):
model = ClothColor
...
class ProductAdmin(admin.ModelAdmin):
...
inlines = (ClothColorInline,)
而且,这就是我的管理面板的外观。
现在,当我向 中的颜色字段添加新颜色时clothColor
,它也会显示已使用的颜色。img:管理面板中的下拉菜单。
由于unique_together
限制,它向我显示错误,因此,它可以防止意外填充相同的颜色两次,但如果颜色已被使用,我需要一种方法来完全隐藏该选项。
那么,当我已经使用该颜色时,如何减少颜色字段中的选项?
解决方案
推荐阅读
- collections - Cassandra - 更新集类型列
- angularjs - Angular ng-show 未使用 ng-message 标签执行
- java - 连接被拒绝:连接,java套接字
- python - Python Beautiful Soup 仅获取第一个 Href
- apache-kafka - 加入使用 Avro 模式定义的两个 Kafka 流时如何编写 ValueJoiner?
- python - 消除 for 循环中的“找到”变量
- node.js - 在多个 page.click 上捕获多个 xhr 响应(无需重新加载或更改页面)
- ios - CollectionView Segue 在接收 ViewController 时发现 nil
- java - 将 ArrayNode 放入 ObjectNode
- ruby - 有人可以解释这个 ruby 片段中实例变量 @ 前缀的用法吗?