Django ForeignKey 外键关联实战:模型定义与 Admin 优化

Chloe
Chloe
发布时间:2026-10-13| 5人浏览过
原创

本文详解 Django 中 ForeignKey 外键字段的定义与使用,通过部门与信息表的关联示例,展示如何建立一对多关系。重点解析数据库字段命名规则(如 dep_id)及 __str__ 方法在 Admin 后台显示优化中的作用,帮助开发者规范模型设计并提升管理界面体验。

Django 外键关联基础与模型定义

在实际业务场景中,常存在一对多的数据关系,例如公司包含多个部门,每个部门可以发布多条信息,但每条信息仅归属于一个特定部门。

首先定义部门模型,代码如下:


class Dep(models.Model):
  name = models.CharField('小组名称',primary_key=True, blank=True, null=False, max_length =200)
  def __str__(self):
     return self.name

接着定义信息模型,代码如下:


class Main(models.Model):
  dep = models.ForeignKey(Dep,verbose_name='发布部门')

通过上述定义,两个模型之间便建立了关联关系。

数据库字段命名与 Admin 显示优化

需要注意的是,在 Django 框架中,外键字段的处理有特定规范。

具体而言,Main 模型中的 dep 字段在生成的数据库表中,其列名会自动追加后缀,变为 dep_id。

此外,在 Dep 模型中实现 __str__ 方法至关重要。这样配置后,在 Django Admin 后台新增 Main 记录时,部门(dep)的下拉选择框将直接显示具体的小组名称,而非默认的 object 字符串,从而提升操作体验。

以上内容介绍了 Django 中 ForeignKey 的基本用法与优化技巧,供开发者参考。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。