Django:检索抽象派生模型

Django:检索抽象派生模型,django,django-models,abstract-class,Django,Django Models,Abstract Class,在得到我的答案后,我遇到了另一个问题 我注意到了djangodocs所说的话,所以我跟着他走 我正在使用最新的Django版本9814。我得到的奇怪行为: In [1]: o = Order() In [2]: o.save() DEBUG:root:STORING EVENT MESSAGE: Order created. pk=2 -- LEVEL TOP DEBUG:root:Saving order pk=2 # it actually does exist in the data

在得到我的答案后,我遇到了另一个问题

我注意到了djangodocs所说的话,所以我跟着他走

我正在使用最新的Django版本9814。我得到的奇怪行为:

In [1]: o = Order()

In [2]: o.save()
DEBUG:root:STORING EVENT MESSAGE: Order created. pk=2 -- LEVEL TOP
DEBUG:root:Saving order pk=2 

# it actually does exist in the database, so everything's cool.

In [3]: o.id
Out[3]: 2L # huh?

In [4]: o._default_manager
Out[4]: <django.db.models.manager.Manager object at 0x16e5370>

In [5]: Order.objects.all()
Out[5]: []

# WTF? and even more WTF below:

In [6]: Order.objects.get(id=2) 
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/Users/adam/_dev/cashfire/<ipython console> 

/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/db/models/manager.py in get(self, *args, **kwargs)
     91 
     92     def get(self, *args, **kwargs):
---> 93         return self.get_query_set().get(*args, **kwargs)
     94 
     95     def get_or_create(self, **kwargs):

/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/db/models/query.py in get(self, *args, **kwargs)
    333         """
    334         clone = self.filter(*args, **kwargs)
--> 335         num = len(clone)
    336         if num == 1:
    337             return clone._result_cache[0]

/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/db/models/query.py in __len__(self)
    159                 self._result_cache = list(self._iter)
    160             else:
--> 161                 self._result_cache = list(self.iterator())
    162         elif self._iter:
    163             self._result_cache.extend(list(self._iter))

/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/db/models/query.py in iterator(self)
    286             else:
    287                 # omit aggregates in object creation
--> 288                 obj = self.model(*row[index_start:aggregate_start])
    289 
    290             for i, k in enumerate(extra_select):

TypeError: __init__() takes exactly 1 argument (5 given)
[1]中的
:o=Order()
在[2]中:o.save()
调试:根目录:存储事件消息:已创建订单。pk=2——顶部标高
调试:root:保存订单pk=2
#它确实存在于数据库中,所以一切都很酷。
In[3]:o.id
出[3]:2升,嗯?
在[4]中:o.\u默认值\u管理器
出[4]:
[5]中的Order.objects.all()
输出[5]:[]
#WTF?下面还有更多WTF:
在[6]中:Order.objects.get(id=2)
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
/用户/adam/_-dev/cashfire/
/get中的opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/db/models/manager.py(self,*args,**kwargs)
91
92 def get(自身、*args、**kwargs):
--->93返回self.get\u query\u set().get(*args,**kwargs)
94
95 def获取或创建(自我,**kwargs):
/get中的opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/db/models/query.py(self,*args,**kwargs)
333         """
334 clone=self.filter(*args,**kwargs)
-->335 num=len(克隆)
336如果num==1:
337返回克隆。\u结果\u缓存[0]
/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/db/models/query.py in__________(self)
159 self.\u结果\u缓存=列表(self.\u iter)
160其他:
-->161 self.\u result\u cache=list(self.iterator())
162 elif自测试仪:
163 self.\u result.\u cache.extend(列表(self.\u iter))
/迭代器中的opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/db/models/query.py(self)
286其他:
287#在对象创建中忽略聚合
-->288 obj=self.model(*行[索引开始:聚合开始])
289
290用于枚举中的i,k(额外选择):
TypeError:\uuuu init\uuuuuu()正好接受1个参数(给定5个)
好吧,是我的错(实用程序的“别再怪SQL了”)。 这正是traceback所说的,忘记了
\uuuu init\uuuu
的args和kwagrs。我真傻