2

我正在尝试将生菜添加到现有的Django 项目中。配置了一个非常简单的功能目录后,我不断得到django.contrib.admin.sites.AlreadyRegistered:模型系列已经注册。我检查了不同的导入(例如import .modelsvs 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'...
4

2 回答 2

4

我面临着来自黄瓜背景的同样问题,希望从运行“收获”开始,然后编写我的第一个功能文件。但我面临着这个错误。显然,如果您在运行收获的应用程序中没有功能文件夹(由 settings.py 中的 LETTUCE_APPS 定义),并且其中至少有一个步骤定义文件 (.py)。看起来如果它没有落在默认位置的功能上,它会启动详尽的搜索以重新加载模块,从而导致管理员重新加载失败。

于 2013-08-27T14:50:34.067 回答
0

当您指定要运行上述功能的应用程序时,您需要指定要运行的应用程序。这可以通过几种方式之一来完成。

首先,像使用标准测试那样直接指定应用程序是行不通的。

  1. 您可以将应用标志添加到命令中。记录在这里。 示例:./manage.py 收获 -apps=my_app,my_app2

  2. 您可以指定功能目录的直接路径示例:./manage.py Harvest my_app/features

  3. 您可以关闭应用程序并在 settings.py 文件中指定要测试的应用程序: LETTUCE_APPS = ( 'my_app', 'my_app2', )

于 2013-11-21T21:49:35.297 回答