如何解决Django在测试抽象模型时在id字段上引发ValidationException
我有一个像这样的抽象 django 模型:
from django.db import models
class BaseModel(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
abstract = True
使用以下代码测试此类时:
from django.test import TestCase
from django.db import models
from core.models import BaseModel
class BaseModelTest(TestCase):
def test_1(self):
class SimpleClass(BaseModel):
name = models.CharField(max_length=10)
simple = SimpleClass(name="test")
simple.save()
simple.full_clean()
...
我收到以下错误:
django.core.exceptions.ValidationError: {'id': ['“6072d8ce3c23022d0694ae8e” value must be an integer.']}
我使用 mongodb
作为我的数据库。删除abstract = True
时没有这样的错误。
解决方法
Django 不支持 MongoDB:https://docs.djangoproject.com/en/3.2/ref/databases/
也不需要对 django 内部进行测试。使用提供的代码,您实际上并没有测试您的类,因为您正在测试方法中创建一个新类。我也不明白 full_clean
的调用。
你可以看看这个:https://django-mongodb-engine.readthedocs.io/en/latest/index.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。