首页 > 解决方案 > 如何在 djongo 中“禁用”默认主键

问题描述

升级到 djongo 1.3.6 后出现此错误

ERRORS: some_app.Some_Class: (models.E026) The model cannot have more than one field with 'primary_key=True'.

这是给出错误的类:

# some_app/some_class.py 

from djongo import models


class Some_Class(models.Model):
    _id = models.ObjectIdField()
    event_id = models.IntegerField(primary_key=True) 
    league = models.CharField(max_length=512)
    event_date = models.IntegerField()
    event_text = models.CharField(max_length=512)
    event_group_id = models.IntegerField()
    group_name = models.CharField(max_length=512)

如您所见,我只定义了一个 PK,但显然 djongo 正在创建另一个。关于如何禁用此 djongo 行为的任何想法????

标签: pythondjangodjongo

解决方案


目前,Django 模型只支持单列主键。如果您没有为模型中的字段指定 primary_key = True,Django 将自动创建一个列 id 作为主键。


推荐阅读