python调试网页_Python Django shell 调试
Python Django 調試
>>> class Person(models.Model):
... first_name = models.CharField(max_length = 50)
... last_name = models.CharField(max_length = 50)
... def __unicode__(self):
... return u'%s %s' %(self.first_name ,self.last_name)
...
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python2.7/site-packages/django/db/models/base.py", line 117, in __new__
kwargs = {"app_label": package_components[app_label_index]}
IndexError: list index out of range
模型的定義必須在應用程序中-你看到那里它試圖采取 name model_module 錯誤-這應該有一些像為 project\appname\models.py-project.appname.models,并獲得該應用程序的名稱,appname 來。在交互式的控制臺中,該模塊 name 是 'main',所以它會失敗。
為了解決這個問題,你需要在元類 自己指定的 app_label,
>>> from django.db import models
>>> class Poll(models.Model):
... question = models.CharField(max_length=200)
... pub_date = models.DateTimeField('date published')
... class Meta:
... app_label = 'test'
解釋為什么你可以做到,看看在回溯(traceback)的時候,/usr/lib/python2.7/site-packages/django/db/models/base.py 中提到該文件:
if getattr(meta, 'app_label', None) is None:
# Figure out the app_label by looking one level up.
# For 'django.contrib.sites.models', this would be 'sites'.
model_module = sys.modules[new_class.__module__]
kwargs = {"app_label": model_module.__name__.split('.')[-2]}
else:
kwargs = {}
元類在哪里定義呢?,見上方在該文件中。
總結
以上是生活随笔為你收集整理的python调试网页_Python Django shell 调试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3.8.3下载不了nltk_
- 下一篇: 在美特斯拉或将建设第三座整车工厂 威