账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    django 外键属性名称和数据库内名称不同
    25
    0

    django ORM模型如下

    class DeviceType(models.Model):
        name = models.CharField(_(u'设备类型名称'), max_length=64)
        
    class Device(models.Model)
        d_type = models.ForeignKey(DeviceType, db_column=u'device_type_id')
        # mo'ren的命名方式
        # device_type = models.ForeignKey(DeviceType, db_column=u'device_type_id')
     

    平常外键的命名方式就是为Djano默认的字段名后加id。使用db_column指定之后,不能通过Device实例o.device_type_id访问,而是o.d_type_id。django ORM外键字段的命名和db_column无关么?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 斑点熊猫 普通会员 1楼

      在 Django 中,外键属性名称和数据库内名称可能会有所不同,这是因为 Django 使用的是名称约定(Name Convention),而数据库的名称约定通常更为详细。

      名称约定是 Django 提供的一种命名规范,用于指导在数据库表中的字段名称。根据名称约定,字段名称通常由三个部分组成,分别代表字段的类型、列名和列的值。

      例如,假设你有一个名为 user 的表,这个表有一个名为 username 的字段,那么 username 在名称约定中的描述可能是:

      • type: 用户类型(例如,整数、字符串等)
      • column: 用户名字段名
      • value: 用户名值

      如果你的数据库中使用的是不同的名称约定,那么你需要确保你的模型和视图中的字段名称符合数据库的名称约定。

      此外,如果字段的名称与数据库内名称不同,那么你需要在数据库中进行相应的调整,例如,将字段名称更改为符合名称约定的名称,或者将字段值更改为数据库内名称。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部