Django Error Silver Bullets

I've recently been teaching myself Django. I was working on creating a new web app to handle the backend for some IoT projects I've been working on and recently came across two errors. In case anyone else comes across them, I will post the silver bullets below to hopefully save you some time.

1. no such table: main.auth_user__old

This was an unhandled exception that occurred whenever I tried to POST data from the Django admin:

Request Method: POST
Request URL: http://127.0.0.1:8000/admin/weatherstation/weather_recording/add/
Django Version: 2.1.1
Exception Type: OperationalError
Exception Value: no such table: main.auth_user__old
Exception Location: /home/engineer/anaconda3/envs/djangoEnv/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py in execute, line 296
Python Executable: /home/engineer/anaconda3/envs/djangoEnv/bin/python
Python Version: 3.5.6
Python Path: [‘/home/engineer/Projects/WEATHERSTATION/weathersite’, ‘/home/engineer/anaconda3/envs/djangoEnv/lib/python35.zip’, ‘/home/engineer/anaconda3/envs/djangoEnv/lib/python3.5’, ‘/home/engineer/anaconda3/envs/djangoEnv/lib/python3.5/plat-linux’, ‘/home/engineer/anaconda3/envs/djangoEnv/lib/python3.5/lib-dynload’, ‘/home/engineer/anaconda3/envs/djangoEnv/lib/python3.5/site-packages’]

Request Method:   POST      Request URL:   http://127.0.0.1:8000/admin/weatherstation/weather_recording/add/      Django Version:   2.1.1      Exception Type:   OperationalError      Exception Value:   no such table: main.auth_user__old      Exception Location:   /home/engineer/anaconda3/envs/djangoEnv/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py    in execute, line 296      Python Executable:   /home/engineer/anaconda3/envs/djangoEnv/bin/python      Python Version:   3.5.6      Python Path:   ['/home/engineer/Projects/WEATHERSTATION/weathersite',  '/home/engineer/anaconda3/envs/djangoEnv/lib/python35.zip',  '/home/engineer/anaconda3/envs/djangoEnv/lib/python3.5',  '/home/engineer/anaconda3/envs/djangoEnv/lib/python3.5/plat-linux',  '/home/engineer/anaconda3/envs/djangoEnv/lib/python3.5/lib-dynload',  '/home/engineer/anaconda3/envs/djangoEnv/lib/python3.5/site-packages']

Solution: This problem is described in Issue #21982. It has since been fixed. Since I use Anaconda ("conda") as my package manager, the simple fix for me was to just update my Django environment to the latest version.

2.  ModuleNotFoundError: No module named 'sqlparse'

I thought I was home free at this point now that I had updated my Django environment to the latest version in conda, but alas that was not the case. This time, I received the following error:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/home/engineer/anaconda3/envs/djangoEnvNew/lib/python3.7/site-packages/django/core/management/__init__.py", line 381

...

File "/home/engineer/anaconda3/envs/djangoEnvNew/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py", line 28,
 in <module>
    from .introspection import DatabaseIntrospection            # isort:skip
  File "/home/engineer/anaconda3/envs/djangoEnvNew/lib/python3.7/site-packages/django/db/backends/sqlite3/introspection.py",
 line 4, in <module>
    import sqlparse
ModuleNotFoundError: No module named 'sqlparse'

Thankfully the error stack is pretty helpful here. The most recent call with the error "ModuleNotFoundError: No module named 'sqlparse'" is pretty descriptive. To resolve this error, you simply need to install the module with the following command (while in your virtual environment):

conda install sqlparse

That's it! Hopefully this helps someone else. As always, let me know if you have any questions!