Django自动混合使用外键生成测试数据

时间:2017-03-24 09:57:23

标签: django django-fixtures

我使用django-autofixture为我的数据库实例生成一些随机数据。我的模型如下:

class DummyModel(models.Model):
    name = models.CharField(max_length=100)
    description = models.CharField(max_length=150, blank=True)
    time_points = models.PositiveIntegerField()
    more_text = models.CharField(max_length=100, blank=True)
    image_type = models.ForeignKey(ImageTypeModel, null=False, blank=False,
                                   default='')

    class Meta:
        db_table = "dummy"

所以,我有一个永远存在的外键,它不能为NULL。我还使用Django中的fixture功能为这个ImageTypeModel创建了实例。我删除了所有内容并进行了新的迁移,并验证了ImageTypeModel数据库表是否存在并已填充。 ImageTypeModel定义为:

class ImageTypeModel(models.Model):
    name = models.CharField(max_length=100)
    dims = models.IntegerField()

    class Meta:
        db_table = "imagetypes"

    def __str__(self):
        return self.name

    def __unicode__(self):
        return self.name

现在我尝试使用以下命令创建一些随机数据:

python manage.py loadtestdata myapp.DummyModel:30

然而,这会给我带来这个错误:

django.db.utils.IntegrityError: NOT NULL constraint failed: dummy.image_type_id

我不知道为什么应该这样做,并尝试删除/复制项目到一个新的位置,但没有去。

0 个答案:

没有答案