Django学習で出会った穴と解決方法

1921 ワード


Your STATICFILES_DIRS setting is not a tuple or list; 「.ソリューション:settings.pyファイルを見つけ、STATICFILES_DIRS=(os.path.join(BASE_DIR,'static'))をSTATICFILES_DIRS=[(os.path.join(BASE_DIR,'static')]に変更します.
Pythonを使用してメールを送信する場合は、サーバの構成を明確にする必要があります.現在のところ、qqはTLS転送プロトコルをサポートしていません.
QUESTION:You are trying to add a non-nullable field 'xxx' to userprofile without a default
One option is to declare a default value for 'new_field':ただし、モデルを初めて作成してデータ移行する場合は、このような問題は発生しません.
new_field = models.CharField(max_length=140, default='DEFAULT VALUE')

another option is to declare 'new_field' as a nullable field:
new_field = models.CharField(max_length=140, null=True)

If you decide to accept 'new_field' as a nullable field you may want to accept 'no input' as valid input for 'new_field'. Then you have to add the  blank=True  statement as well:
new_field = models.CharField(max_length=140, blank=True, null=True)

Even with  null=True  and/or  blank=True  you can add a default value if necessary:
new_field = models.CharField(max_length=140, default='DEFAULT VALUE', blank=True, null=True)

デフォルト値を追加しない2つの方法:
やり方1暴力的なやり方
python manageを使用します.py flushコマンドは、すべてのデータテーブルのデータを空にし、migrationsフォルダのすべてのpyファイル(init.pyを除く)を削除します.私たちのモデルはすぐに原点に戻り、新しいモデルになりました.もちろん問題はありません.欠点は、既存のデータがすべて失われていることです.
作り方2推奨方法
まずmigrationsフォルダのすべてのpyファイル(init.pyを除く)を削除し、python manageを実行します.py migrate.この場合、新しいデータの要件に合致しないcompanyフィールドデータ(例えばBaidu)のみが失われ、JohnオブジェクトとMaxオブジェクトはまだ存在します.データ・テーブルにすでに存在するデータに価値がある場合は、データベースをバックアップしてからmigrateコマンドの移行を実行することをお勧めします.
 
以上の内容は一部の転載です.
作者:妄心xyxリンク:https://www.jianshu.com/p/d52783987fec出典:簡書簡書の著作権は著者の所有であり、いかなる形式の転載も著者に連絡して授権を得て出典を明記してください.