如何使syncdb显示完整的堆栈跟踪

时间:2014-01-29 16:32:16

标签: python django error-handling migration django-syncdb

我一直在尝试追踪错误来源的最后几个小时

AttributeError: 'Options' object has no attribute 'model_name'

我在尝试运行syncdb或迁移时收到它。

我安装的应用包括:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.comments',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.formtools',
'django.contrib.sitemaps',
'django.contrib.humanize',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
# Uncomment the next line to enable the admin:
'django.contrib.admin',

'customer',
'monitor',
'accounts',
'payments',

'cms',
'mptt',
'menus',
'south',
'sekizai',
'reversion',

'cms.plugins.text',
'cms.plugins.picture',
'cms.plugins.link',
'cms.plugins.file',
'cms.plugins.snippet',
'cms.plugins.googlemap',
'cms.plugins.video',

'zinnia',
'tagging',
'cmsplugin_zinnia',

'registration',
'django_filters',
'rest_framework',
'django_countries',
'smartagent',
'captcha',
'django.contrib.markup',
'knowledge',

'djcelery',
'djcelery_email',

'paypal.standard.ipn',
'paypal.standard.pdt',

'raven.contrib.django.raven_compat',
'django_statsd',

)

和要求文件有:

#Requirements for the application
Django>=1.5
Fabric>=1.4.1
South>=0.7.4
psycopg2>=2.4.5
gunicorn>=0.14.1
#newrelic==1.2.0.246
django-celery>=3.0.21
requests
numpy>=1.7.1
raven>=4.0.3
django-statsd-mozilla>=0.3.9


django-mptt>=0.6.0
django-cache-machine==0.6
cssmin==0.1.4
django-cms>=2.4.3
django-blog-zinnia>=0.12.3
cmsplugin_zinnia>=0.4.0

django-reversion<1.8
pil
django-registration>=1.0
djangorestframework
markdown
django-filter
django-countries
django-download-stats>=0.2
django-smartagent>=0.1.1
django-recaptcha>=0.0.6
django-celery-email>=1.0.4
django-knowledge
xlwt>=0.7.5
#django-paypal>=0.1.2

是否有一种方法可以强制syncdb显示错误的完整堆栈跟踪。 我尝试添加--verbosity 2,但这没有帮助。

感谢您的反馈意见。

2 个答案:

答案 0 :(得分:1)

This ticket可能具有相关性,具体而言:

  

您在_meta.model_name访问时获得此AttributeError的原因是该属性仅在Django 1.6中引入。我担心你必须访问_meta.module_name并在Django上小写它&lt; 1.6得到相同的结果。

我注意到你在requirements.txt中指定了Django 1.5。可能你的第三方应用程序之一设计用于Django 1.6 +?

答案 1 :(得分:0)

我认为将--traceback添加到syncdb或migrate命令应该按照您的要求执行。