weixin_44273090 2023-03-01 19:13 采纳率: 100%
浏览 16
已结题

django+mongdb数据表

img


用的是django框架,有需要用到集合里面的文档的id属性,但是打开数据库没发现有这个字段_primary_key_,0001_initial.py文件里面有自动给添加的id字段,怎么才能让数据表里面有这个字段呢?数据库迁移命令用了好多次了,都没弄出来?自己在models.py添加了自增id属性也没有用,不知道改哪里

  • 写回答

2条回答 默认 最新

  • MarkHan_ 2023-03-01 19:49
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    Django在定义一个模型类时,默认会自动为其添加一个自增的主键字段,这个主键字段在数据库中默认的名称为"id"。如果你没有在模型类中手动定义主键字段,那么Django会自动为其创建一个。
    -
    在默认情况下,Django会为每个模型自动创建一个名为id的主键字段,但是如果你手动定义了一个主键字段,那么Django就不会再自动创建id字段了。
    -
    如果你希望在模型中添加一个名为id的主键字段,可以在模型中手动添加一个:

    class MyModel(models.Model):
        id = models.AutoField(primary_key=True)
        # 其他字段定义...
    
    
    
    

    这样,在进行数据库迁移时,Django会自动为该模型添加一个名为id的主键字段,并在数据库中创建相应的索引。

    需要注意的是,如果你手动定义了主键字段,那么在进行模型查询时,需要使用手动定义的主键字段来进行过滤和排序,而不能使用默认的id字段。比如:

    # 使用手动定义的主键字段进行查询
    MyModel.objects.filter(id=1)
    
    # 排序也要使用手动定义的主键字段
    MyModel.objects.all().order_by('id')
    
    
    

    如果你已经在模型类中定义了自增的主键字段,但仍然无法在数据库中看到这个字段,可能是因为之前的数据库迁移并没有成功。可以尝试使用makemigrations和migrate命令重新进行数据库迁移,确保模型类中的字段和数据库中的字段一致。如果问题仍然存在,可以考虑删除之前的数据库,并重新进行迁移。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月11日
  • 已采纳回答 3月3日
  • 创建了问题 3月1日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度