Add "Silly django confusion" archive post
This commit is contained in:
parent
ea98325f1e
commit
0bdbf16419
1 changed files with 38 additions and 0 deletions
38
posts/Silly_django_confusion.mdwn
Normal file
38
posts/Silly_django_confusion.mdwn
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
I'm setting up a testing environment for work, using fixtures to save
|
||||||
|
and load test data and I got a little stumped by something I ran into.
|
||||||
|
|
||||||
|
I had exported one of the database tables we use to a json file that I
|
||||||
|
was going to import into a fresh new database to test with. When I
|
||||||
|
imported it everything seemed fine, except when looking at the actual
|
||||||
|
page. So this is what I found:
|
||||||
|
|
||||||
|
<pre class="src src-sql">SELECT * FROM app_table;
|
||||||
|
=> 3 rows of data</pre>
|
||||||
|
|
||||||
|
<pre class="src src-python"><span class="org-keyword">from</span> app.models <span class="org-keyword">import</span> Table
|
||||||
|
|
||||||
|
Table.objects.count()
|
||||||
|
=> 3
|
||||||
|
|
||||||
|
Table.objects.<span class="org-builtin">all</span>()
|
||||||
|
=> []</pre>
|
||||||
|
|
||||||
|
This is weird. So I looked at the `django.db.connection.queries`
|
||||||
|
property and I realized that it was doing a join since the model
|
||||||
|
subclasses another:
|
||||||
|
|
||||||
|
<pre class="src src-python"><span class="org-keyword">from</span> django.db <span class="org-keyword">import</span> models
|
||||||
|
|
||||||
|
<span class="org-keyword">from</span> app.models <span class="org-keyword">import</span> SuperTable
|
||||||
|
|
||||||
|
<span class="org-keyword">class</span> <span class="org-type">Table</span>(SuperTable):...</pre>
|
||||||
|
|
||||||
|
|
||||||
|
Which, of course, means that in order to get the complete `Table`
|
||||||
|
instance, the related `SuperTable` instance is also required, but in
|
||||||
|
order to do a `COUNT` of `app_table` it isn't necessary. And that's
|
||||||
|
where the inconsistency came from, now that I've also copied the
|
||||||
|
contents of `SuperTable` everything is fine again.
|
||||||
|
|
||||||
|
[[!meta date="2012-04-24 15:51:00"]]
|
||||||
|
[[!tag python django coding]]
|
Loading…
Reference in a new issue