sqlite3 で実行されている完全に機能するサッチモ ストアがあります。ただし、mysqlに変更する必要があります。新しいデータベースを作成するか、古いデータベースを移植するかに関係なく、あらゆる場所で http エラー 500 が発生します。たとえば、新しいデータベースがあり、ユーザー アカウントを作成した場合、すべて問題ないようです。次に、ユーザーのプロファイル (実際には拡張ユーザー プロファイル) を更新しようとすると、すぐにサーバー 500 エラーが発生します。そのURLにはもう興味がないようです(http://127.0.0.1:8000/accounts/update/)
奇妙なことに、管理者としてログインして管理ページに移動すると、そのユーザーの (拡張) プロファイルをまったく問題なく更新できます。実際、管理ページでエラーを見たことはありません。
mysql用に設定する方法は次のとおりです。
apt-get install mysql-client
apt-get install mysql-server
apt-get install python-mysqldb
mysql -u root -p
mysql> USE mysql;
mysql> CREATE DATABASE mystore CHARACTER SET utf8;
mysql> GRANT ALL PRIVILEGES ON mystore.* TO storeuser@localhost IDENTIFIED BY 'secret';
mysql> FLUSH PRIVILEGES;
settings.py:
DATABASE_ENGINE = 'mysql'
DATABASE_NAME = 'mystore'
DATABASE_USER = 'storeuser'
DATABASE_PASSWORD = 'secret'
DATABASE_HOST = ''
DATABASE_PORT = ''
DATABASE_OPTIONS = { "init_command": 'SET NAMES "utf8"' , "init_command":'SET storage_engine=INNODB' , }
次に、新しいデータベースを作成するために、次のことを行いました。
python manage.py syncdb
python manage.py runserver
編集 1
これが爆発するコードです:
class myExtendedContactInfoForm(ExtendedContactInfoForm):
def __init__(self, *args, **kwargs):
# The following line is where it produces the error
super(myExtendedContactInfoForm, self).__init__(*args, **kwargs)
編集 2
sqlite バックエンドの使用に戻って sqlite db を削除すると (そして 'python manage.py syncdb' を実行すると)、まったく同じ症状が発生するため、db に何かが欠けているようです。syncdb 以上のことをする必要があるようです。
ここで何が欠けていますか?