博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python Django shell 调试
阅读量:6949 次
发布时间:2019-06-27

本文共 1406 字,大约阅读时间需要 4 分钟。

hot3.png

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

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

转载于:https://my.oschina.net/innovation/blog/358956

你可能感兴趣的文章
[BZOJ4472] [Jsoi2015]salesman(DFS/排序)
查看>>
[BZOJ1191] [HNOI2006]超级英雄Hero(二分图)
查看>>
《Java技术》第八次作业
查看>>
Ajax
查看>>
subline Text 乱码
查看>>
管道符和作业 shell变量 环境变量
查看>>
关于canvas createRadialGradient
查看>>
在go中使用linked channels进行数据广播
查看>>
关于克隆gitlab项目的一些 问题列表
查看>>
C/C++ 平衡二叉树笔记(AVL树)
查看>>
HDU动态规划部分题目统计
查看>>
C_求质数
查看>>
Python time & random模块
查看>>
java JMF 多媒体
查看>>
Python核心编程(第二版)PDF
查看>>
golang 性能测试pprof
查看>>
ubuntu开机只有一条横杠在闪的解决办法
查看>>
分享幻灯片+在线阅读
查看>>
塔式、机架式、刀片式服务器的区别和特点
查看>>
25、Base64
查看>>