0

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 以上のことをする必要があるようです。

ここで何が欠けていますか?

4

0 に答える 0