我有一个我在数据迁移中创建的系统用户:
new Thread() {
public void run() {
try {
Thread.sleep(100);
if (sum.contains(jLabel11.getText())) {
System.out.println("Now equal");
} else {
System.out.println("Not equal yet");
}
} catch (InterruptedException ex) {
Logger.getLogger(AlarmClock.class.getName()).log(Level.SEVERE, null, ex);
}
}
}.start();
我跑了from __future__ import unicode_literals
from django.db import migrations
from django.contrib.auth.models import User
def create_system_user(apps, schema_editor):
system_user = User.objects.get_or_create(username="system")[0]
system_user.set_password("system")
system_user.save()
class Migration(migrations.Migration):
dependencies = [
('app', '0021_prev_migration'),
]
operations = [
migrations.RunPython(create_system_user)
]
,迁移似乎正常运行。如果我进入shell,则用户按预期存在。但是,当我运行我的测试套件时,我收到错误:
python manage.py migrate
Django 1.10,Python 2.7
答案 0 :(得分:1)
测试始终以空数据库开头;看起来你的tasks.py在导致创建默认用户的迁移之前被导入了。
但是,出于这个原因,您不应该在模块级别执行查询等操作。将tasks.py中的那一行移动到一个函数中,并在需要时调用它。