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 = {}

元类在哪里定义呢?,见上方在该文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值