时间:2021-05-22
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/#db-column
以上这篇Django 实现外键去除自动添加的后缀‘_id'就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
需求:序列化外键,获取外键的除id之外的值使用DjangoRESTFramework虽然开发接口快速,但是如果想要获取到除外键id值之外的外键信息,直接继承se
django外键使用一对一因为django中处于安全和方便将数据库中的表封装成模型,所以很多sql原生的功能无法使用,比如leftjoin,但是我们可以使用外键
添加外键,altertableB 语法:altertable表名addconstraint外键约束名foreignkey(列名)references引用外
python2.7.11django1.8.4错误内容:relatedFieldhasinvalidlookup:icontains我原来默认认为在处理外键搜索
数据库结构如下strategy中有外键member_id(关联member表)外键strategy_category(关联category表)而member表中