小编Shi*_*i3A的帖子

django 1.8测试模型和迁移

我使用django 1.8我有一个模型参考django.contrib.contenttypes.ContentType:

from django.db import models
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType


class TaggedItem(models.Model):
    tag = models.SlugField()
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type', 'object_id')

    def __str__(self):              # __unicode__ on Python 2
        return self.tag
Run Code Online (Sandbox Code Playgroud)

我有一个tests.py:

class TestObj(models.Model):
    value = models.IntegerField(default=42, null=False)

    def __str__(self):
        text = "%s-%i" % ("name", self.value)
        return text


class MyUnitTest(TestCase):
    def setUp(self):
        TestObj.objects.create(value=40)
        TestObj.objects.create()

    def test_my_test(self):
        obj1 = TestObj.objects.get(value=40)
        obj2 = TestObj.objects.get(value=42)
        self.assertEqual(obj1.value, 40)
        self.assertEqual(obj2.value, 42)
Run Code Online (Sandbox Code Playgroud)

当我尝试在没有迁移的情况下创建数据库(以及"测试")时,我收到一个带有无效引用的错误:

./manage.py syncdb
...
django.db.utils.ProgrammingError: ERROR: reference …
Run Code Online (Sandbox Code Playgroud)

django django-models django-tests django-migrations

5
推荐指数
1
解决办法
1510
查看次数