我有一个关于测试我的应用程序的问题,包括具有默认值的ForeignKey modelfields上的迁移(参见下面的示例,模型RuleSet中的字段模式).
我不知道这是Django 1.7测试迁移中的错误还是我做错了什么
#models.py:
RULE_SET_MODE__ACTIVE = "Active"
def default_mode():
return RuleSetMode.objects.get(name=RULE_SET_MODE__ACTIVE)
class RuleSetMode(models.Model):
name = models.CharField(max_length=30)
description = models.CharField(max_length=255)
class RuleSet(models.Model):
name = models.CharField(max_length=30, unique=True)
description = models.CharField(max_length=255)
mode = models.ForeignKey(RuleSetMode, default=default_mode)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我尝试了以下迁移步骤
他们都没有为我工作.因此,您可以看到问题与迁移字段本身无关.这与应用程序存在迁移的事实有关.
(在使用此解决方案的测试期间,覆盖save方法将是解决方案或禁用迁移:在Django 1.7中运行单元测试时禁用迁移,但我更喜欢设置默认属性)
#migrations file (altering the existing field):
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import myapp.models
class Migration(migrations.Migration):
dependencies = [
('myapp', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='ruleset', …Run Code Online (Sandbox Code Playgroud)