Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Django中创建由两个字段组成的主键?

如何在Django中创建由两个字段组成的主键?
EN

Stack Overflow用户
提问于 2015-07-09 18:00:58
回答 2查看 11.7K关注 0票数 7

我开发了一个应用程序,该应用程序具有指定的数据库和模型模式。我使用的是Django 1.8.2版本。下面是一个问题。不必要的字段被省略了,模型名称是为了示例的目的而发明的,因为我不能透露。考虑以下模型A和B。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class B (models.Model):

      name = models.CharField(max_length=100)

class A (models.Model):

      name = models.CharField(max_length=100, primary_key=True)
      related_name = models.ForeignKey(B, null=True, blank=True)

经过很长一段时间的项目后,可能会有几个相同的名称A,但具有不同的外键B。在这种情况下,我想建模主键"A“由两个字段组成:名称和相关名称。如何在django中创建包含两个字段的键?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-09 18:03:11

您希望使用组合键。Django不支持此See here。有一些支持,但你不能有关系,所以它在实际使用中是相当有限的。

目前的Django模型只支持这个集合中的一列,拒绝了许多表的自然主键是多列的设计。Django目前不能使用这些模式;相反,它们必须引入一个冗余的单列键(“代理”键),迫使应用程序在任何给定实例中对表使用哪个键做出任意的和不必要的选择。

票数 6
EN

Stack Overflow用户

发布于 2015-07-09 18:04:05

Django不支持组合键。但是你可以使用unique-together

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
unique_together = ("name", "related_name")
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31324971

复制
相关文章

相似问题

由多个字段组成的Django字段

10

Django中由几个IntegerRangeField组成的选择字段

12

由其他表中的主键组成的复合主键

36

如何在Entity Framework中创建由两个表的外键组成的复合主键?

10

由两个外键组成的映射主键?hibernate

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文