【发布时间】:2013-05-25 14:15:03
【问题描述】:
在我的 django 应用中,我添加了一个数据迁移(使用South)来添加一个用户作为项目的创建者
from south.db import db
from south.v2 import DataMigration
from django.db import models
...
class Migration(DataMigration):
def forwards(self, orm):
suser = orm['auth.User'].objects.filter(is_superuser=True)[0]
for item in orm.MyItem.objects.all():
item.creator = suser
item.save()
当迁移运行时,这成功地为数据库中的每个MyItem 添加了一个创建者。但是,测试现在抛出一个错误
Creating test database for alias 'default'...
Error in migration: mypgm:0005_add_creator
..
File "/home/me/dev/python/django/mypgm/migrations/0005_add_creator.py", line 10, in forwards
suser = orm['auth.User'].objects.filter(is_superuser=True)[0]
File "/home/me/Django-1.4/django/db/models/query.py", line 207, in __getitem__
return list(qs)[0]
IndexError: list index out of range
我查看了 query.py 的 src 代码,但不知道为什么会这样。我在 ubuntu lucid 上使用 Django1.4 和 python 2.6.5
如果有人能理解为什么会发生这个错误,请告诉
【问题讨论】:
标签: django testing django-south