今天在学习django的过程中发现,当模型中有外键,
user = models.ForeignKey('users.User', on_delete=models.CASCADE, verbose_name='用户')
迁移到数据库之后,数据库中的字段名会自动补一个_id,
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX9sGVPVzYU90MrR0T6V0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DNwYzMzkTNwIjMycDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
开始以为是migrate构造的,在migrate的源码中遍寻不到,
偶然居然在ForeignKey这个类中找到了
def get_attname(self):
return '%s_id' % self.name
这个方法是django.db中models中的方法
from django.db import models