You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将一个模型的指定字段用作另一个模型的外键?以sku字段为例

实现将指定字段作为外键关联的方法

要把Product模型的sku字段作为另一个模型的外键,需要注意两个核心点:目标字段必须具备唯一约束(确保能唯一标识单条Product记录),以及定义外键时明确指定关联的字段。

步骤1:给Product模型的sku添加唯一约束

首先要保证sku字段的唯一性,否则无法作为外键关联的目标(外键需要指向能唯一确定记录的字段):

from django.db import models

class Product(models.Model):
    price = models.IntegerField()
    no = models.IntegerField(default=0, null=True)
    # 添加unique=True约束,确保sku值唯一
    sku = models.CharField(max_length=100, default=0, null=True, unique=True)

步骤2:创建关联模型,指定外键指向sku

定义另一个模型(比如OrderItem)时,使用ForeignKey的to_field参数,明确关联Product的sku字段:

class OrderItem(models.Model):
    # 关联Product的sku字段,on_delete按业务需求选择(如CASCADE、PROTECT等)
    product_sku = models.ForeignKey(Product, on_delete=models.CASCADE, to_field='sku')
    quantity = models.IntegerField(default=1)
    # 可添加其他业务字段

注意事项

  • 执行数据库迁移:先运行python manage.py makemigrations生成迁移文件,再用python manage.py migrate应用到数据库。
  • 若sku字段已有重复数据,添加unique=True时会触发报错,需先清理重复的sku值再执行迁移。

内容的提问来源于stack exchange,提问作者Naman JR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:20:56