当从Django Treebeard节点进行子分类时,我收到了一条非描述性的错误消息(或者至少我不知道如何在这个上下文中解释),我不知道如何调试。我使用的安装说明在:http://code.tabo.pe/django-treebeard/src/tip/tbexample/(见文章末尾)。在
我创建了MP_Node的一个子类,syncdb正常工作。但是,加载模型.py代码进入shell会产生“列表索引超出范围”错误-请参阅下面的代码和跟踪。在
谢谢你的帮助。在
Python 2.6.4、Django 1.1、Treebeard 1.1:
try:
from django.db import models, transaction
from django.db.models import AutoField
import django.dispatch
from django.contrib.treebeard.mp_tree import MP_Node
except ImportError, exc:
print "django error in %s: %s" % (__file__, exc)
class DelibNode(MP_Node): pass
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Program Files\Python26\lib\site-packages\django\db\models\base.py", line 52, in __new__
kwargs = {"app_label": model_module.__name__.split('.')[-2]}
IndexError: list index out of range
已在中安装应用设置.py公司名称:
^{pr2}$说明:
1运行easy_install django-treebeard
安装
PyPi的最新treebeard版本
1.1条。如果您不喜欢轻松安装,请从
treebeard下载页面或获取开发版本
从treebeard mercurial存储库运行python setup.py install
2将“treebeard”添加到
django设置文件。
三。创建一个继承django treebeard的
抽象树模型:mp_tree.MP_节点(物化路径),
纳秒_tree.NS_节点(嵌套集)或al_tree.AL_节点
(邻接列表)。
4运行python manage.py syncdb
您可以在线浏览Django源代码:
https://github.com/django/django/blob/master/django/db/models/base.py#L90
引发异常的相关代码具有以下注释:
因此,代码似乎在试图确定模型所属的应用程序。在
要调试它,只需修改基准.py捕捉索引器错误并引发model\u模块。在
我今天也犯了同样的错误。要想修好你,先去模型.py文件,并在每个类中添加另一个类:
我想你得到这个错误是因为你的应用程序名称中的句点。如果元类中没有提供应用程序名称,Django将尝试通过分解文件夹结构来自己确定它。当这种情况发生时,它会在“period location”处分解,并计算出你的应用程序名是medCE或delib,这显然不是你的应用程序名。在
我知道这个问题很古老,但希望它能帮助未来的观众
相关问题 更多 >
编程相关推荐