Jeg følger trinnene i Django Book og kom til den delen der forfatterne forklarte hot wo satte opp et django-prosjekt for å bruke en database. Jeg valgte mysql.
Mine innstillinger i settings.py
er:
DATABASES = {
'default': {
'ENGINE': 'mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'mydatabase', # Or path to database file if using sqlite3.
'USER': 'myname', # Not used with sqlite3.
'PASSWORD': 'mypassword', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
Når du prøver å starte serveren, skrives følgende melding ut:
Validating models...
Traceback (most recent call last):
File "/home/me/workspace/mysite/src/mysite/manage.py", line 14, in
execute_manager(settings)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 442, in execute_manager
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 220, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 67, in handle
self.run(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 78, in run
self.inner_run(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 88, in inner_run
self.validate(display_num_errors=True)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 243, in validate
from django.core.management.validation import get_validation_errors
File "/usr/local/lib/python2.7/dist-packages/django/core/management/validation.py", line 3, in
from django.contrib.contenttypes.generic import GenericForeignKey, GenericRelation
File "/usr/local/lib/python2.7/dist-packages/django/contrib/contenttypes/generic.py", line 7, in
from django.db import connection
File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 27, in
connection = connections[DEFAULT_DB_ALIAS]
File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 81, in __getitem__
backend = load_backend(db['ENGINE'])
File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 23, in load_backend
return import_module('.base', backend_name)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
ImportError: No module named mysql.base
Jeg googlet litt og fant ut at denne meldingen kunne skrives ut hvis du bruker en eldre versjon av MySQLd. Så jeg sørget for at jeg fikk den siste versjon. Og testet importen i et interaktivt pythonskall. Det er greit.
Noen andre forslag, hvorfor dette ikke fungerer?
Jeg jobber med en nyinstallert Ubuntu 11.04 Versjon (Wubi i Windows 7), hvis det betyr noe. =)