国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python - Django操作數據庫遇到問題,無法查詢更新后的數據

瀏覽:118日期:2022-06-27 08:16:35

問題描述

我更改了question_text的屬性并保存python - Django操作數據庫遇到問題,無法查詢更新后的數據

python - Django操作數據庫遇到問題,無法查詢更新后的數據然后添加__str__()方法后再次查詢所有Question,

我上面的代碼是按照這個http://www.yiibai.com/django/...來實現的,剛學,自己的步驟跟這個教程是一樣的,就是在添加 __str__() 方法后,教程的正確顯示如下圖:

python - Django操作數據庫遇到問題,無法查詢更新后的數據

但是我自己進行測試,輸入命令,可是卻看不到我更改后的記錄,比如我將q.question_text = 'What’s up?'q.save()

保存好修改后,運行下面的命令Question.objects.all()結果如下圖:python - Django操作數據庫遇到問題,無法查詢更新后的數據請問這是什么原因——Django1.9,數據庫是默認的sqlite3

問題解答

回答1:

def __str__這應該是模型Question的類方法,這個方法決定了你查詢時的返回,你定義的 return self.question_text,所以你查詢到對象的時候它會返回對象的question_text屬性, 但是你的書寫格式錯誤,將這個方法定義到了類外面,它就變成了一個單一的函數,跟這個類沒什么關系了, 你查詢的時候就會默認返回一個Question對象。

回答2:

感謝tianren124的解答,問題得到了解決。首先需要修改models.py:models.py

# Create your models here.class Question(models.Model): def __str__(self):return self.question_text question_text = models.CharField(max_length=200) pub_date = models.DateTimeField(’date published’) class Chioce(models.Model): def __str__(self):return self.choice_text question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0) # 每個模型是django.db.models.Model類的子類 #def was_published_recently(self):#return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

更改好上面的model.py代碼后保存,打開cmd,重新輸入

C:UsersAdministratorAppDataLocalProgramsPythonPython35myproject>python manage.py runserver

同時輸入

C:UsersAdministratorAppDataLocalProgramsPythonPython35myproject>python manage.py shellPython 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32Type 'help', 'copyright', 'credits' or 'license' for more information.(InteractiveConsole)>>> import django>>> django.setup()>>> from polls.models import Question, Chioce>>> Question.objects.all()[<Question: What’s up?>, <Question: What’s up?>, <Question: What’s up?>]>>>

可以看到,不同于之前問題中的結果,當輸入Question.objects.all()后,運行結果是我更改q.question_tex后的值 “What’s up?解決:1.修改models.py

def __str__(self):return self.question_text

應該放在

question_text = models.CharField(max_length=200) pub_date = models.DateTimeField(’date published’)

def __str__(self):return self.choice_text

同樣要放在

question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0)

的前面,至于為什么我自己也不太明白。2.注意縮進:python - Django操作數據庫遇到問題,無法查詢更新后的數據

表述的可能不是很清楚,歡迎指正

標簽: Python 編程
主站蜘蛛池模板: 大陆高清自拍 | 欧美在线看欧美高清视频免费 | 欧美成人做爰网站 | 亚洲成人在线网 | 国内精品久久久久久久久 | 亚洲国产欧美在线成人aaaa | 成 人 免费 网站 | 日本人成在线视频免费播放 | 久久熟| 成人国产永久福利看片 | 毛片图片 | 97视频免费公开成人福利 | 丰满老熟女毛片 | 性久久久久久久久久 | 波多野结衣中文无毒不卡 | 亚洲精品综合 | 黄 色 免费网 站 成 人 | 精品欧美一区二区三区在线观看 | www中文字幕在线观看 | 亚洲一区欧美 | 国产精品欧美一区二区三区 | 中文字幕无线码中文字幕网站 | 免费无遮挡毛片 | 男人天堂1024 | 人久热欧美在线观看量量 | 国产福利一区二区三区 | 国产高清一区二区三区免费视频 | 久草免费资源 | 亚洲国产欧洲精品路线久久 | 欧美性色黄在线视 | 91久久亚洲精品国产一区二区 | 亚洲一区二区三区免费 | 日韩一级欧美一级一级国产 | 成人久久18免费网站入口 | 欧美成人免费公开播放 | 88av视频在线观看 | 亚洲欧美中文日韩二区一区 | 欧美一区二区在线观看视频 | 久久爱噜噜噜噜久久久网 | 日韩欧美国产成人 | 久久久综合网 |