django模型中, 外键字段使用to_filed属性 指定到所关联主表的某个字段

Posted lowmanisbusy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django模型中, 外键字段使用to_filed属性 指定到所关联主表的某个字段相关的知识,希望对你有一定的参考价值。

在django项目的开发过程中,在设计模型时一开始将主键设置成了一个自定义的字段,但是在创建搜索索引时却发现必须要存在一个id的字段,并且为主键(不知道是否是项目一开始就这样配置的原因), 但此时表结构已经整体固定下来,并且有外键关联到了这个自定义的的主键,整个后台视图逻辑也已经封装完成,如果主表的主键发生改变,那么外键所在的表就会默认关联到新的主键上,那个后台视图的改动就会非常麻烦,这时就需要使用外键字段中的to_field属性来指定所关联的主表的某个字段,而不会影响到原先的逻辑

demo如下:

from uuid import uuid4
from django.db import models
class CourseInfo(models.Model):

    # 使用Bigint
    id = models.BigAutoField(primary_key=True)
   # 使用to_field关联到了这个字段,所以必须设置unique=True
    course_id = models.UUIDField(auto_created=True, default=uuid4, editable=False, unique=True, db_index=True)


class Learner(models.Model):

    id = models.AutoField(primary_key=True)
course
= models.ForeignKey(CourseInfo, to_field="course_id")

 

以上是关于django模型中, 外键字段使用to_filed属性 指定到所关联主表的某个字段的主要内容,如果未能解决你的问题,请参考以下文章

DRF 使用外键更改 django 模型的字段名称值

django模型在具有外键的字段中没有列错误

带有查找字段的嵌套模型外键上的 Django JOIN

尝试在 Django 中使用外键列表创建 PostgreSQL 字段

Django 模型:多个外键或一对一字段

Django 通过外键或其他字段引用模型