Python - Django はデータベースの操作中に問題が発生し、更新されたデータをクエリできませんでした
PHP中文网
PHP中文网 2017-06-30 09:55:15
0
2
894

question_text のプロパティを変更して保存しました


次に、__str__() メソッドを追加し、すべての質問を再度クエリします。

私の上記のコードは、この

http://www.yiibai.com/django/... に従って実装されています。私はちょうどそれを学びました。私の手順は、このチュートリアルと同じで、__str__ () を追加することです。メソッドを使用すると、チュートリアルの正しい表示は次のようになります:

しかし、自分でテストしてコマンドを入力しましたが、変更後のレコードは表示されませんでした。たとえば、

q.question_text = "What's up?"
q.save( )

変更を保存した後、次のコマンドを実行します

Question.objects.all()
結果は以下のようになります:

この理由は? —Django1.9、データベースはデフォルトの sqlite3
です

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(2)
巴扎黑

def __str__ これはモデル Question のクラス メソッドである必要があります。このメソッドはクエリ時の戻り値を決定するため、オブジェクトをクエリするとオブジェクトの question_text 属性が返されます。このメソッドがクラスの外で定義されている場合、このメソッドは単一の関数となり、クエリを実行すると、デフォルトで Question オブジェクトが返されます。

いいねを押す +0
typecho

tianren124 さんの回答のおかげで、問題は解決しました。
まず、models.py を変更する必要があります:
models.py

リーリー

上記のmodel.pyコードを変更した後、それを保存し、cmdを開いて再入力します

リーリー

同時エントリー

リーリー

前の質問の結果とは異なり、Question.objects.all() を入力すると、実行結果は q.question_tex "What's up?" を変更した後の値であることがわかります。
解決策:
1. モデルを変更します。ぴー

リーリー

に配置する必要があります リーリー リーリー

も載せます リーリー

目の前では、理由がよくわかりません。
2. インデントに注意してください:

表現がわかりにくいかもしれません、修正してください

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート