Python Django&;MongoDB在django模型上存在默认ID自动字段问题

Python Django&;MongoDB在django模型上存在默认ID自动字段问题,python,django,python-3.x,mongodb,djongo,Python,Django,Python 3.x,Mongodb,Djongo,我有Django 2,其中使用了Rest框架和Djongo 可以创建帐户,但当我尝试查看要更新的已创建帐户列表或对其执行任何操作时,我实际上无法检索帐户列表,并且在ID字段上出现错误 我认为这是MongoDB的一个问题,那么如何解决这个问题呢 这是我的错误,后面是我的帐户相关代码 迁移错误位于/Accounts/account/ 身份证件 请求方法:获取 请求URL: Django版本:2.2.7 异常类型:MigrationError 异常值: 身份证件 异常位置:C:\Users\PC 00

我有Django 2,其中使用了Rest框架和Djongo

可以创建帐户,但当我尝试查看要更新的已创建帐户列表或对其执行任何操作时,我实际上无法检索帐户列表,并且在ID字段上出现错误

我认为这是MongoDB的一个问题,那么如何解决这个问题呢

这是我的错误,后面是我的帐户相关代码

迁移错误位于/Accounts/account/ 身份证件 请求方法:获取 请求URL: Django版本:2.2.7 异常类型:MigrationError 异常值:
身份证件 异常位置:C:\Users\PC 001\AppData\Local\Programs\Python\Python38-32\lib\site packages\djongo\sql2mongo\query.py,在第287行的对齐结果中 Python可执行文件:C:\Users\PC 001\AppData\Local\Programs\Python\Python38-32\Python.exe Python版本:3.8.0 Python路径:
['E:\Project\accountingPy', 'C:\Users\PC' '001\AppData\Local\Programs\Python\Python38-32\Python38.zip', 'C:\Users\PC 001\AppData\Local\Programs\Python\Python38-32\DLLs', 'C:\Users\PC 001\AppData\Local\Programs\Python\Python38-32\lib', 'C:\Users\PC 001\AppData\Local\Programs\Python\Python38-32', 'C:\Users\PC 001\AppData\Roaming\Python\Python38\site packages', 'C:\Users\PC' '001\AppData\Local\Programs\Python\Python38-32\lib\site包'] 服务器时间:2020年4月6日星期一15:00:38+0000

存储在数据库中的记录

// 1
{
    "_id": ObjectId("5e8b3a0c10fc9f40cdca44be"),
    "label": "Mapping",
    "owner": "Nasser",
    "balance_currency": "USD",
    "balance": "23.00",
    "desc": "This the Cash account that manage by cash payments",
    "status": true,
    "created_at": ISODate("2020-04-06T14:17:48.838Z"),
    "updated_at": ISODate("2020-04-06T14:17:48.838Z")
}
帐户模型

class Account(models.Model):
    class Meta:
        db_table = 'account'
    def __str__(self):
        return self.label

    label = models.CharField(max_length=20,unique=True)
    owner = models.CharField(max_length=20)
    balance = MoneyField(max_digits=14, decimal_places=2, 
                          default_currency='USD')
    desc = models.CharField(max_length=200, blank=True)
    status = models.BooleanField(default=1)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
帐户序列化程序

class AccountSerializer(serializers.ModelSerializer):
    class Meta:
        model = Account
        fields = ['label', 'owner', 'balance',
          'desc', 'status', 'created_at', 'updated_at']
网址

帐户视图集

class AccountViewSet(viewsets.ViewSet):

    def list(self, request):
        account = Account.objects.all()
        serializer = AccountSerializer(account, many=True)
        return JsonResponse(serializer.data, safe=False)
      # return HttpResponse("List")
会计来源

class AccountForm(ModelForm):
    class Meta:
        model = Account
        fields = ['label', 'owner', 'balance',
                  'desc', 'status']

基本解决方案 我在模型中添加了id字段none autoIncrement,问题已经解决

id=models.IntegerField(主键=True,唯一键=True)

但我认为这不是一个好的解决方案,因为Id不是自动递增的,每次我都需要检查最后一个Id以获得一个自动递增的Id字段。
如何在MongoDB中创建自动增量字段?

我解决了删除数据库并重新生成迁移的问题,在创建ID字段的新数据库中,ID字段被添加到_ID旁边,并且是自动增量的,如果我在数据库中有任何重要数据,这不是一个好的解决方案,但对我来说很有用,因为我只是从头开始开发。是的,放下桌子并重新制作它们对我很有用。但是,肯定还有别的办法。我甚至不知道为什么会这样。我有过两次这样的问题。
class AccountForm(ModelForm):
    class Meta:
        model = Account
        fields = ['label', 'owner', 'balance',
                  'desc', 'status']