problems with django_extension's graph_models?

Published on 2013-11-15 20:14:01.470801+00:00
django   django_extensions   python  

I recently ran into an issue when trying to generate an image of my project's models using django_extension's graph_models command. Unfortunately, googling for the error didn't turn up any solutions, so I'm dumping some info here (just in case!).

some background

For the record, I was using django_extensions, version 1.2.5 (the latest release as of this post), and Django 1.4.2 (yeah... it's old)

Running the following command:

$ ./ graph_models my_app >

Gave me the following error

Traceback (most recent call last):
  File "./", line 10, in 
 File "/home/vagrant/.virtualenvs/my\_app/local/lib/python2.7/site-packages/django/core/management/\_\_init\_\", line 443, in execute\_from\_command\_line
 File "/home/vagrant/.virtualenvs/my\_app/local/lib/python2.7/site-packages/django/core/management/\_\_init\_\", line 382, in execute
 File "/home/vagrant/.virtualenvs/my\_app/local/lib/python2.7/site-packages/django/core/management/", line 196, in run\_from\_argv
 self.execute(\*args, \*\*options.\_\_dict\_\_)
 File "/home/vagrant/.virtualenvs/my\_app/local/lib/python2.7/site-packages/django/core/management/", line 232, in execute
 output = self.handle(\*args, \*\*options)
 File "/home/vagrant/.virtualenvs/my\_app/local/lib/python2.7/site-packages/django\_extensions/management/commands/graph\", line 72, in handle
 dotdata = generate\_dot(args, cli\_options=cli\_options, \*\*options)
 File "/home/vagrant/.virtualenvs/my\_app/local/lib/python2.7/site-packages/django\_extensions/management/", line 168, in generate\_dot
 if field == pk:
 File "/home/vagrant/.virtualenvs/my\_app/local/lib/python2.7/site-packages/django/db/models/fields/\_\_init\_\", line 128, in \_\_cmp\_\_
 return cmp(self.creation\_counter, other.creation\_counter)
AttributeError: 'NoneType' object has no attribute 'creation\_counter'

The problem?

I'm not entirely sure, but it seems related to this issue.

The solution

Rather, the solution that worked for me (YMMV): Uninstall your current version:

pip uninstall django-extensions

Then install the current development version from github:

pip install -e git+

Hope that helps someone else!