我正在尝试将Lettuce添加到现有的 Django项目中。通过配置非常简单的功能目录,我不断获得django.contrib.admin.sites.AlreadyRegistered
:模型系列已经注册。我检查了不同的导入(例如import .models
与import reg.models
),重复导入以及可能重新导入我的admin.py的错误应用程序无效。这个错误似乎来自生菜试图重新加载模块。我不确定为什么要这样做。回溯在下面。
(dwcoop)s001 cro-mbp[126]% DJANGO_SETTINGS_MODULE=settings.testing django-admin.py harvest reg
Creating test database for alias 'default'...
Django's builtin server is running at 0.0.0.0:8000
Traceback (most recent call last):
File "/Users/cro/src/ve/dwcoop/lib/python2.7/site- packages/lettuce/django/management/commands/harvest.py", line 167, in handle
result = runner.run()
File "/Users/cro/src/ve/dwcoop/lib/python2.7/site-packages/lettuce/__init__.py", line 137, in run
self.loader.find_and_load_step_definitions()
File "/Users/cro/src/ve/dwcoop/lib/python2.7/site-packages/lettuce/fs.py", line 60, in find_and_load_step_definitions
reload(module) # always take fresh meat :)
File "/Users/cro/src/ve/dwcoop/web/web/reg/admin.py", line 60, in <module>
admin.site.register(Family, FamilyAdmin)
File "/Users/cro/src/ve/dwcoop/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 83, in register
raise AlreadyRegistered('The model %s is already registered' % model.__name__)
AlreadyRegistered: The model Family is already registered
Destroying test database for alias 'default'...
答案 0 :(得分:4)
我面临同样的问题,来自黄瓜背景,希望通过运行“收获”然后编写我的第一个功能文件开始。但我遇到了这个错误。显然,如果您正在运行的应用程序中没有功能文件夹(由settings.py中的LETTUCE_APPS定义),并且其中至少有一个步骤定义文件(.py)。看起来如果它没有落在默认位置的功能上,它会启动一个详尽的搜索,重新加载模块,从而导致管理员重新加载失败。
答案 1 :(得分:0)
指定要运行上述功能的应用程序时,需要指定要运行的应用程序。这可以通过以下几种方式之一完成。
首先,如上所述直接指定应用程序不像标准测试那样。
您可以将app标志添加到命令中。 Documented here. 示例:./ manage.py harvest -apps = my_app,my_app2
您可以指定功能目录的直接路径 示例:./ manage.py harvest my_app / features
您可以暂停应用,并在settings.py文件中指定要测试的应用: LETTUCE_APPS =( 'my_app应用', 'my_app2', )