That's a nice idea, however it has a strong impact on performance since the import is done each time this method is called.

Here is a small proof:
``` python
>>> from timeit import timeit
>>> timeit("import re; re.compile('')")
1.2623980045318604
>>> timeit("re.compile('')", setup='import re')
0.6012001037597656
```

In the first ``timeit``, we import a module and use one of its functions 1 million times.
In the second, the module is imported one time before executing the function 1 million times.
As you can see, the first on is 2 times slower than the first…
This import should therefore be put between line 6 and line 7.

Concerning the rest of the commit, I have never used ``limit_choices_to`` with grappelli, so I can't tell whether your commit is good to go.  But that sounds totally convincing.