2011-02-03 27 views
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的命令行開關呢?我能在這裏做什麼來調試呢?

回答