Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python';什么是pdb?_Python_Django_Pdb_Django Contenttypes - Fatal编程技术网

如何使用Python';什么是pdb?

如何使用Python';什么是pdb?,python,django,pdb,django-contenttypes,Python,Django,Pdb,Django Contenttypes,我正在使用pdb(实际上是ipdb)调试我的Django模型.py。我特别尝试调试以下代码行: def add_can_view( sender, **kwargs ) : #import ipdb; ipdb.set_trace() for content_type in ContentType.objects.all(): Permission.objects.create( content_type = content_type,

我正在使用
pdb
(实际上是
ipdb
)调试我的Django
模型.py
。我特别尝试调试以下代码行:

def add_can_view( sender, **kwargs ) :
    #import ipdb; ipdb.set_trace()
    for content_type in ContentType.objects.all():
        Permission.objects.create(
            content_type = content_type,
            codename     = 'view_{}'.format( content_type.model ),
            name         = 'Can view {}'.format( content_type.name )
        )

post_syncdb.connect( add_can_view )
在中提供的上述代码在运行
python manage.py syncdb
时出现
IntegrityError
错误:

ERROR: An unexpected error occurred while tokenizing input
The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (11, 0))
---------------------------------------------------------------------------
IntegrityError                            Traceback (most recent call last)
/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
    173             else:
    174                 filename = fname
--> 175             __builtin__.execfile(filename, *where)

/Users/hobbes3/Sites/mysite/manage.py in <module>()
      8     from django.core.management import execute_from_command_line
      9 
---> 10     execute_from_command_line(sys.argv)

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/__init__.pyc in execute_from_command_line(argv)
    441     """
    442     utility = ManagementUtility(argv)
--> 443     utility.execute()
    444 
    445 def execute_manager(settings_mod, argv=None):

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/__init__.pyc in execute(self)
    380             sys.stdout.write(self.main_help_text() + '\n')
    381         else:
--> 382             self.fetch_command(subcommand).run_from_argv(self.argv)
    383 
    384 def setup_environ(settings_mod, original_settings_path=None):

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/base.pyc in run_from_argv(self, argv)
    194         options, args = parser.parse_args(argv[2:])
    195         handle_default_options(options)
--> 196         self.execute(*args, **options.__dict__)
    197 
    198     def execute(self, *args, **options):

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/base.pyc in execute(self, *args, **options)
    230             if self.requires_model_validation:
    231                 self.validate()
--> 232             output = self.handle(*args, **options)
    233             if output:
    234                 if self.output_transaction:

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/base.pyc in handle(self, *args, **options)
    369         if args:
    370             raise CommandError("Command doesn't accept any arguments")
--> 371         return self.handle_noargs(**options)
    372 
    373     def handle_noargs(self, **options):

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/South-0.7.4-py2.7.egg/south/management/commands/syncdb.pyc in handle_noargs(self, migrate_all, **options)
     88 
     89         # OK, run the actual syncdb

---> 90         syncdb.Command().execute(**options)
     91 
     92         settings.INSTALLED_APPS = old_installed

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/base.pyc in execute(self, *args, **options)
    230             if self.requires_model_validation:
    231                 self.validate()
--> 232             output = self.handle(*args, **options)
    233             if output:
    234                 if self.output_transaction:

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/base.pyc in handle(self, *args, **options)
    369         if args:
    370             raise CommandError("Command doesn't accept any arguments")
--> 371         return self.handle_noargs(**options)
    372 
    373     def handle_noargs(self, **options):

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/commands/syncdb.pyc in handle_noargs(self, **options)
    108         # Send the post_syncdb signal, so individual apps can do whatever they need

    109         # to do at this point.

--> 110         emit_post_sync_signal(created_models, verbosity, interactive, db)
    111 
    112         # The connection may have been closed by a syncdb handler.


/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/sql.pyc in emit_post_sync_signal(created_models, verbosity, interactive, db)
    187         models.signals.post_syncdb.send(sender=app, app=app,
    188             created_models=created_models, verbosity=verbosity,
--> 189             interactive=interactive, db=db)

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/dispatch/dispatcher.pyc in send(self, sender, **named)
    170 
    171         for receiver in self._live_receivers(_make_id(sender)):
--> 172             response = receiver(signal=self, sender=sender, **named)
    173             responses.append((receiver, response))
    174         return responses

/Users/hobbes3/Sites/mysite/doors/signals.py in add_can_view(sender, **kwargs)
      8             content_type = content_type,
      9             codename     = 'view_{}'.format( content_type.model ),
---> 10             name         = 'Can view {}'.format( content_type.name )
     11         )
     12 

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/db/models/manager.pyc in create(self, **kwargs)
    135 
    136     def create(self, **kwargs):
--> 137         return self.get_query_set().create(**kwargs)
    138 
    139     def bulk_create(self, *args, **kwargs):

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/db/models/query.pyc in create(self, **kwargs)
    375         obj = self.model(**kwargs)
    376         self._for_write = True
--> 377         obj.save(force_insert=True, using=self.db)
    378         return obj
    379 

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/db/models/base.pyc in save(self, force_insert, force_update, using)
    461         if force_insert and force_update:
    462             raise ValueError("Cannot force both insert and updating in model saving.")
--> 463         self.save_base(using=using, force_insert=force_insert, force_update=force_update)
    464 
    465     save.alters_data = True

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/db/models/base.pyc in save_base(self, raw, cls, origin, force_insert, force_update, using)
    549 
    550                 update_pk = bool(meta.has_auto_field and not pk_set)
--> 551                 result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw)
    552 
    553                 if update_pk:

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/db/models/manager.pyc in _insert(self, objs, fields, **kwargs)
    201 
    202     def _insert(self, objs, fields, **kwargs):
--> 203         return insert_query(self.model, objs, fields, **kwargs)
    204 
    205     def _update(self, values, **kwargs):

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/db/models/query.pyc in insert_query(model, objs, fields, return_id, raw, using)
   1574     query = sql.InsertQuery(model)
   1575     query.insert_values(fields, objs, raw=raw)
-> 1576     return query.get_compiler(using=using).execute_sql(return_id)
   1577 
   1578 

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/db/models/sql/compiler.pyc in execute_sql(self, return_id)
    908         cursor = self.connection.cursor()
    909         for sql, params in self.as_sql():
--> 910             cursor.execute(sql, params)
    911         if not (return_id and cursor):
    912             return

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/db/backends/util.pyc in execute(self, sql, params)
     38         start = time()
     39         try:
---> 40             return self.cursor.execute(sql, params)
     41         finally:
     42             stop = time()

/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.pyc in execute(self, query, args)
     50     def execute(self, query, args=None):
     51         try:
---> 52             return self.cursor.execute(query, args)
     53         except Database.IntegrityError, e:
     54             raise utils.IntegrityError, utils.IntegrityError(*tuple(e)), sys.exc_info()[2]

IntegrityError: duplicate key value violates unique constraint "auth_permission_content_type_id_codename_key"
DETAIL:  Key (content_type_id, codename)=(2, view_group) already exists.
错误:标记输入时发生意外错误
以下回溯可能已损坏或无效
错误消息是:('EOF in multi-line statement',(11,0))
---------------------------------------------------------------------------
IntegrityError回溯(最后一次调用)
/execfile(fname,*其中)中的Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/IPython/utils/py3compat.pyc
173.其他:
174 filename=fname
-->175 _uu内置_uuu.execfile(文件名,*其中)
/()中的Users/hobbes3/Sites/mysite/manage.py
8从django.core.management导入从命令行执行
9
--->10从命令行(sys.argv)执行命令
/用户/hobbes3/.virtualenvs/doors/lib/python2.7/site packages/django/core/management/\uuuuuu init\uuuuu.pyc从命令行(argv)执行
441     """
442实用程序=管理实用程序(argv)
-->443实用程序
444
445 def执行管理器(设置模块,argv=None):
/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site packages/django/core/management/_init__.pyc in execute(self)
380 sys.stdout.write(self.main\u help\u text()+'\n')
381其他:
-->382 self.fetch_命令(子命令)。从_argv(self.argv)运行_
383
384 def设置环境(设置模式、原始设置路径=无):
/Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/base.pyc从_argv运行(self,argv)
194选项,args=parser.parse_args(argv[2:])
195句柄\默认\选项(选项)
-->196自我执行(*args,**选项._dict__)
197
198 def execute(自我,*参数,**选项):
/执行中的Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/base.pyc(self,*args,**选项)
230如果self.Required_model_验证:
231自我验证()
-->232输出=自身句柄(*args,**选项)
233如果输出:
234如果self.output\u事务:
/句柄中的Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/base.pyc(self,*args,**选项)
369如果参数为:
370 raise CommandError(“命令不接受任何参数”)
-->371返回自身句柄_noargs(**选项)
372
373 def手柄(自身,**选项):
/handle_noargs中的Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/South-0.7.4-py2.7.egg/South/management/commands/syncdb.pyc(self、migrate_all、**选项)
88
89#好的,运行实际的syncdb
--->90 syncdb.Command().execute(**选项)
91
92设置。已安装的应用程序=已安装的旧应用程序
/执行中的Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/base.pyc(self,*args,**选项)
230如果self.Required_model_验证:
231自我验证()
-->232输出=自身句柄(*args,**选项)
233如果输出:
234如果self.output\u事务:
/句柄中的Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/base.pyc(self,*args,**选项)
369如果参数为:
370 raise CommandError(“命令不接受任何参数”)
-->371返回自身句柄_noargs(**选项)
372
373 def手柄(自身,**选项):
/handle_noargs中的Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/commands/syncdb.pyc(self,**选项)
108#发送post#u syncdb信号,这样各个应用程序就可以做他们需要的任何事情
109#在这一点上做。
-->110发出后同步信号(创建的模型、详细、交互式、db)
111
112#连接可能已被syncdb处理程序关闭。
/用户/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/core/management/sql.pyc发出后同步信号(创建模型、冗余、交互、db)
187型号。信号。后同步数据库。发送(发送方=应用,应用=应用,
188创建的模型=创建的模型,详细程度=详细程度,
-->189交互式=交互式,db=db)
/发送中的Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/dispatch/dispatcher.pyc(self,sender,**命名)
170
171对于自身中的接收者。_live_接收者(_make_id(发送者)):
-->172响应=接收器(信号=自身,发送者=发送者,**命名)
173响应。追加((接收方,响应))
174答复
/用户/hobbes3/Sites/mysite/doors/signals.py在add_can_视图中(发送方,**kwargs)
8内容类型=内容类型,
9代码名='view_{}'。格式(content_type.model),
--->10 name='可以查看{}'。格式(content_type.name)
11         )
12
/create(self,**kwargs)中的Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/db/models/manager.pyc
135
136 def创建(自我,**kwargs):
-->137返回self.get\u query\u set().create(**kwargs)
138
139 def批量创建(自身、*args、**kwargs):
/create(self,**kwargs)中的Users/hobbes3/.virtualenvs/doors/lib/python2.7/site-packages/django/db/models/query.pyc
375 obj=自身模型(**kwargs)
376 self.\u for\u write=True
-->377对象保存(force_insert=True,using=self.db)
378返回obj
379
/Users/hobbes3/.virtualenvs/doors/lib/python2
ipdb> foo=""
ipdb> foo.           #press tab after writing the dot
foo.capitalize  foo.islower     foo.rpartition
foo.center      foo.isspace     foo.rsplit
foo.count       foo.istitle     foo.rstrip
foo.decode      foo.isupper     foo.split
foo.encode      foo.join        foo.splitlines
foo.endswith    foo.ljust       foo.startswith
foo.expandtabs  foo.lower       foo.strip
foo.find        foo.lstrip      foo.swapcase
foo.format      foo.partition   foo.title
foo.index       foo.replace     foo.translate
foo.isalnum     foo.rfind       foo.upper
foo.isalpha     foo.rindex      foo.zfill
foo.isdigit     foo.rjusthere