Python Django中另一个实体的单个属性的外键

Python Django中另一个实体的单个属性的外键,python,django,database,sqlite,django-models,Python,Django,Database,Sqlite,Django Models,我想在django中创建数据库模型并定义一个外键。我在internet上看到的所有示例都有以下语法 attr = models.ForeignKey(Entity) 但是,我希望外键与另一个实体的单个属性链接,而不是与整个实体链接 我有以下型号: class User(models.Model): user_id = models.PositiveIntegerField(primary_key=True) password = models.CharField(max_length=20)

我想在django中创建数据库模型并定义一个外键。我在internet上看到的所有示例都有以下语法

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\u id是User.User\u id的外键,而不是整个用户模型的外键。在输入author_id的值时,我只想输入普通id(1,2,3),而不是用户的所有实例


抱歉,如果问题非常笼统,请提前感谢

您应该将fk字段命名为:

author = models.ForeignKey(User, on_delete= models.CASCADE)
因为Django将自动创建属性
author\u id
,并且

content_item.author_id

将允许您直接访问用户id,而无需额外的db命中。通过命名,您可以直接通过
author\u id\u id

访问id。您必须重写models类中的str(self)方法。 前

models.py 类用户(models.Model): . .

其中,attribute name是要引用的属性的名称。
享受没有意义的编码。外键是链接表中项目的ID。显然,遵循这种关系会给你带来整个相关的对象——你为什么不想要呢?
def __str__(self):
    return f”{self.attribute-name}