検索

ホームページ  >  に質問  >  本文

Python - Django はデータベースの操作中に問題が発生し、更新されたデータをクエリできませんでした

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中文网2711日前887

全員に返信(2)返信します

  • 巴扎黑

    巴扎黑2017-06-30 09:57:15

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

    返事
    0
  • typecho

    typecho2017-06-30 09:57:15

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

    リーリー

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

    リーリー

    同時エントリー

    リーリー

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

    リーリー

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

    も載せます リーリー

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

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

    返事
    0
  • キャンセル返事