2017-05-27 89 views
-1

我想在django中创建数据库模型并定义一个外键。我在互联网上看到的所有例子都有以下语法。Django中另一个实体的单个属性的外键

attr = models.ForeignKey(Entity) 

但是我想要一个外键与另一个实体的单个属性链接,而不是整个实体。

我有以下型号:

class User(models.Model): 
user_id = models.PositiveIntegerField(primary_key=True) 
password = models.CharField(max_length=20) 
email = models.EmailField() 
........ 

class ContentItem(models.Model): 
content_id = models.PositiveIntegerField(primary_key=True) 
title = models.CharField(max_length=100) 
description = models.TextField() 
......... 
author_id = models.ForeignKey(User, on_delete= models.CASCADE) 

在这里,我想ContentItem.author_id成为User.user_id外键,而不是整个用户模型。虽然进入了AUTHOR_ID价值,我只是想进入普通的ID(1,2,3),而不是用户的所有实例

很抱歉,如果这个问题是非常笼统,在此先感谢

+0

这没有意义。外键是链接表中项目的ID。显然,按照这种关系给你整个相关的对象 - 你为什么不想要那个? –

回答

0

您应该为您的FK领域,如:

author = models.ForeignKey(User, on_delete= models.CASCADE) 

因为Django会创建属性author_id自动的和

content_item.author_id 

会给你访问用户直接的id没有额外的数据库命中。通过您的命名,您可以直接通过author_id_id访问该ID。

相关问题