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 "<console>", line 1, in <module>
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 = {}

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

时间: 2024-10-14 19:17:10

Python Django shell 调试的相关文章

python django 基本测试 及调试 201812

#####20181225 1.python解决SNIMissingWarning和InsecurePlatformWarning警告在想要获取https站点的资源时,会报出SNIMissingWarning和InsecurePlatformWarning警告 SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not availa

Django学习(九)---Templates过滤器及Django shell和Admin增强

一.Templates过滤器 过滤器属于django模板语言 修改模板中的变量,从而显示不同内容 {{ value | filter }} 举例:{{ list_nums | length}}    表示list的长度 {{ value | filter | filter | filter }} 可叠加 django模板如果出现了不存在的变量,不会报错,只会给出空值 因此修改add_article.html   去掉{{% if *** %}} 添加过滤器default <!DOCTYPE ht

python Django Wbe框架教程

python  Django Wbe框架教程 一.简介 Django 中提供了开发网站经常用到的模块,常见的代码都为你写好了,通过减少重复的代码,Django 使你能够专注于 web 应用上有 趣的关键性的东西.为了达到这个目标,Django 提供了通用Web开发模式的高度抽象,提供了频繁进行的编程作业的快速解决方法,以及为“如何解决问题”提供了清晰明了的约定.Django的理念是DRY(Don't Repeat Yourself)来鼓励快速开发! 让我们一览 Django 全貌 urls.py

Django学习之Django shell

Django shell交互式,方便调试,开发. python manage.py shell from blog.models import Article a=Article() a.title='title' a.brief_content='brief_content' a.content='content' a.save() print (a) articles=Article.objects.all() article=articles[0] print(article.title)

用python+django+twistd 开发一个属于自己的运维系统

开源的运维系统不少,比如nagios.zabbix.cati等等,但是遇到自己个性化的运维需求的时候,总是显的力不从心!最近在学习python,所以就考虑用python+django+twisted来定做一个完全个性化的运维系统. 运维系统有几个主要的功能:监控.分析.报警.更甚者直接根据分析的结果进行反应操作.而以上几点通过上述的框架可以比较容易的实现. 下面上图说明: 使用freemind整理了下思路: 下面是一些代码段,完整的代码下载见文档底部: Server: #!/usr/bin/en

微信开发python+django两个月的成功经历,django是个好框架!

时间:大三 上学期没有用微信内置浏览器而纯对话开发,坑了自己好一下. 下学期选错bottle框架,以为轻量好,谁知开发中什么都自己来很痛苦. 选对了框架django,终于在大三最后的个把月里写出了里程碑式的现在这个微信端,自己都感动到,作为我大三一年web开发的终结吧. 亮点1:自带后台管理 亮点2:后台权限管理 亮点3:微信回复规则设置去代码化,图形界面. 亮点4:一平台多网店 技巧:微信规则不匹配时不能回复吗?不是,规则包含空字符总能匹配任意文本,请看下面的微信规则截图. 后台 选择botl

基于Python+Django的Kubernetes集群管理平台

原文出自[听云技术博客]:http://blog.tingyun.com/web/article/detail/1345 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调度管理等方面都有其难以言喻的优势,但是随着业务的不断增长,以及服务的多元化,容器的体量与管理的难度也随之增长. 浅述Kubernetes集群日常管理维护中的一些痛点: 1.较为庞大的集群规模及容器数量维护管理

在SAE搭建Python+Django+MySQL(基于Windows)

为了与时俱进,工作闲余开始研究Python,刚一接触就被Python这"优雅"的语法吸引住!后来接触到了Django,虽然还没有太深入的研究,但对这种新概念的WEB开发很感兴趣,决定尝试用它代替Java开发小的后台程序,边用边学吧! 注:本篇只介绍基础搭建过程,不负责讲解,因为刚接触Python我也不懂! 一.SAE使用的Python环境版本 Python2.7 Django1.27 / 1.4 / 1.5 本地版本要确定好,需要用到其他的预装模块也要确定好. (我一开始使用了高版本的

使用python+django+twistd 开发自己的操作和维护系统的一个

许多开源操作系统和维护系统,例nagios.zabbix.cati等等,但是,当他们得到的时间自己的个性化操作和维护需求,始终无力! 最近的一项研究python.因此,我们认为python+django+twisted要定制一个完全个性化的操作和维护系统. 有几个基本的功能:监控.分析.报警.更甚者直接依据分析的结果进行反应操作.而以上几点通过上述的框架能够比較easy的实现. 以下上图说明: 使用freemind整理了下思路: 以下是一些代码段,完整的代码下载见文档底部: Server: #!