4
我的工作,有一個大的燈具,其不加載一個Django項目:如何將pdb注入失敗的Python腳本?
$ python manage.py loaddata apps/mainsite/fixtures/test_auctions.json
/Users/cp/bidsite/.ve/lib/python2.6/site-packages/django/db/models/fields/subclassing.py:80: DeprecationWarning: A Field class whose get_db_prep_save method hasn't been updated to take a `connection` argument.
new_class = super(SubfieldBase, cls).__new__(cls, name, bases, attrs)
/Users/cp/bidsite/.ve/lib/python2.6/site-packages/django/db/models/fields/subclassing.py:80: DeprecationWarning: A Field class whose get_db_prep_lookup method hasn't been updated to take `connection` and `prepared` arguments.
new_class = super(SubfieldBase, cls).__new__(cls, name, bases, attrs)
/Users/cp/bidsite/.ve/lib/python2.6/site-packages/celery/task/schedules.py:5: DeprecationWarning: celery.task.schedules is deprecated and renamed to celery.schedules
"celery.task.schedules is deprecated and renamed to celery.schedules"))
Problem installing fixture 'apps/mainsite/fixtures/test_auctions.json': Traceback (most recent call last):
File "/Users/cp/bidsite/.ve/lib/python2.6/site-packages/django/core/management/commands/loaddata.py", line 174, in handle
obj.save(using=using)
File "/Users/cp/bidsite/.ve/lib/python2.6/site-packages/django/core/serializers/base.py", line 165, in save
models.Model.save_base(self.object, using=using, raw=True)
File "/Users/cp/bidsite/.ve/lib/python2.6/site-packages/django/db/models/base.py", line 570, in save_base
created=(not record_exists), raw=raw, using=using)
File "/Users/cp/bidsite/.ve/lib/python2.6/site-packages/django/dispatch/dispatcher.py", line 172, in send
response = receiver(signal=self, sender=sender, **named)
File "/Users/cp/bidsite/apps/mainsite/models.py", line 257, in update_auction_details
auction_json = instance.as_json()
File "/Users/cp/bidsite/apps/mainsite/models.py", line 1110, in as_json
'product': self.product.as_json(),
File "/Users/cp/bidsite/.ve/lib/python2.6/site-packages/django/db/models/fields/related.py", line 315, in __get__
rel_obj = QuerySet(self.field.rel.to).using(db).get(**params)
File "/Users/cp/bidsite/.ve/lib/python2.6/site-packages/django/db/models/query.py", line 349, in get
% self.model._meta.object_name)
DoesNotExist: Product matching query does not exist.
的問題是,堆棧跟蹤沒有給我線索,在夾具哪一行導致此錯誤。我怎樣才能調試呢?我唯一能想到的就是ipythgon中有一個特性,當你執行某個東西並引發一個異常時,ipython會自動注入一個pdb提示符,這樣你就可以四處找出發生了什麼。我該如何做到這一點?是否有一個python的命令行開關呢?我能在這裏做什麼來調試呢?
+1 cool adam!感謝分享。當我在將來的某個時間拉我的頭髮時收藏。希望我記得它。 – 2011-02-03 16:39:03