Django 实现外键去除自动添加的后缀‘_id’

yipeiwu_com7年前Python基础

django在使用外键ForeignKey的时候,会自动给当前字段后面添加一个后缀_id。

正常来说这样并不会影响使用。除非你要写原生sql,还有就是这个表是已经存在的,你只是把数据库中的表映射回models。实际上django提供了这样的一个关键字db_colnum来解决这个问题,你只需要:

f = models.ForeignKey(AnotherModel, db_column='f')

这样就不会自动添加_id这个后缀了。

文档中是这么解释的:

The name of the database column to use for this field. If this isn't given, Django will use the field's name.
If your database column name is an SQL reserved word, or contains characters that aren't allowed in Python variable names – notably, the hyphen – that's OK. Django quotes column and table names behind the scenes.

https://docs.djangoproject.com/en/dev/ref/models/fields/

以上这篇Django 实现外键去除自动添加的后缀‘_id'就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

在python中画正态分布图像的实例

在python中画正态分布图像的实例

1.正态分布简介 正态分布(normal distribtution)又叫做高斯分布(Gaussian distribution),是一个非常重要也非常常见的连续概率分布。正态分布大家也...

总结python中pass的作用

总结python中pass的作用

python中pass的作用?pass代表一个空的语句块 Python中pass的作用: 示例1,定义一个类,类中没有任何内容 保存,运行之后,该文件将报错,因为结构不完整 写入p...

python实战教程之自动扫雷

python实战教程之自动扫雷

前言 自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式。 一、准备工作 1.扫雷游戏 我是win10,没有默认的扫...

Python的Flask框架中web表单的教程

Python的Flask框架中web表单的教程

 概要 在前面章节我们为主页定义了一个简单的模板,部分尚未实现的模块如用户或帖子等使用模拟的对象作为临时占位。 本章我们将看到如何利用web表单填补这些空白。 web表单是we...

Python SQLAlchemy入门教程(基本用法)

本文将以Mysql举例,介绍sqlalchemy的基本用法。其中,Python版本为2.7,sqlalchemy版本为1.1.6。 一. 介绍 SQLAlchemy是Python中最有名...