专栏首页pythonista的日常Django model 自定义指定主键

Django model 自定义指定主键

我最近在做一个新项目,数据工程师在数据库中已经新建了一些表,并且数据表中已经填充了数据,但是我用 django 写的项目中需要用到这些数据表,开发中我使用了 django 的 ORM ,所以需要创建模型 model ,但是有些数据表已经存在了,并且有些表的主键并不是 id 这个字段,django 是默认为模型添加 id 这个字段,并且设置为主键和让其自增。所以我最开始是对现有数据表的表结构进行更改,增加了 id 字段,并且为 id 赋值,将主键设置成id。后来因为数据表的主键变了,之前写的爬取数据的脚本出了一些问题,数据表出现了很多重复的数据。最后去重是通过 sql 语句进行去重处理的。

delete from video_data where id not in (
  select temp.min_id from (
    select min(id) min_id from video_data group by aweme_id
  ) as temp

回到标题,后来我在必应上搜了一下 django model 自定义主键,并且参考了 django 的官方文档,得到了解决办法。如果想自定义指定模型的主键,可以在想要设置为主键字段上设置参数 primary_key=True 。

例如:

aweme_id = models.BigIntegerField(verbose_name="作品id", db_index=True, primary_key=True)

这样,模型的主键就改成了 aweme_id 这个字段。

本文分享自微信公众号 - pythonista的日常(gh_fc70d5d98d3f),作者:pythonista daily

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大白话讲解django之创建一个django项目

    django 非常强大,尤其是django rest framework 打造REST API 非常方便。这次我们先创建一个项目,看看 django 正常运行之...

    用户4945346
  • 用人话讲解django之认识django

    我先用大白话介绍 django 是用来干什么的,知道它可以解决什么问题,以及怎么使用它。

    用户4945346
  • 用人话讲django结合celery实现定时任务

    6.登录 django 的 admin 后台,配置定时任务,选择 Periodic tasks

    用户4945346
  • MyBatis XML详解

    原文:https://www.cnblogs.com/weijie4611/p/10450717.html

    小锋学长
  • phalapi-入门篇5(数据库操作和Model层)

    #phalapi-入门篇5(数据库操作和Model层)# ? ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源...

    喵了个咪233
  • myBatis实例

    用户1112962
  • 省市县,区的查询(通过区开始)(导出的接口实现)

    wfaceboss
  • 面试题|无索引如何删除亿级数据?

    存在索引的情况下就比较简单,直接利用索引进行删除,写一个for 循环语句 每次删除500行,每次判断delete 影响的行数可以累加计算删除了多少行,直到删除结...

    [3306 Pai ] 社区
  • 【leetcode两题选手】MySQL类题目(八)

    某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述。

    看、未来
  • Bypass 360主机卫士SQL注入防御(多姿势)

    在服务器客户端领域,曾经出现过一款360主机卫士,目前已停止更新和维护,官网都打不开了,但服务器中依然经常可以看到它的身影。从半年前的测试虚拟机里面,翻出了36...

    Bypass

扫码关注云+社区

领取腾讯云代金券