我更改了question_text的屬性並儲存
然後加入__str__()方法後再查詢所有Question,
我上面的程式碼是按照這個
http://www.yiibai.com/django/...來實現的,剛學,自己的步驟跟這個教程是一樣的,就是在添加__str__ () 方法後,教程的正確顯示如下圖:
#但是我自己進行測試,輸入指令,可是卻看不到我更改後的記錄,例如我將
q.question_text = "What's up?"
q.save()
儲存好修改後,執行下面的指令
Question.objects.all()
結果如下圖:
##請問這是什麼原因— —Django1.9,資料庫是預設的sqlite3
def __str__這應該是模型Question的類別方法,這個方法決定了你查詢時的返回,你定義的return self.question_text,所以你查詢到物件的時候它會返回物件的question_text屬性, 但是你的書寫格式錯誤,將這個方法定義到了類別外面,它就變成了一個單一的函數,跟這個類別沒什麼關係了, 你查詢的時候就會預設回傳一個Question物件。
感謝tianren124的解答,問題都解決了。
首先需要修改models.py:
models.py
更改好上面的model.py代碼後儲存,打開cmd,重新輸入
同時輸入
可以看到,不同於先前問題中的結果,當輸入Question.objects.all()後,運行結果是我更改q.question_tex後的值 “What's up?
解決:
1.修改models.py
應該放在
同樣要放在
的前面,至於為什麼我自己也不太明白。
2.注意縮排:
表述的可能不是很清楚,歡迎指正