我使用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)