亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

問題描述

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

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

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

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

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

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

問題解答

回答1:

def __str__這應(yīng)該是模型Question的類方法,這個(gè)方法決定了你查詢時(shí)的返回,你定義的 return self.question_text,所以你查詢到對象的時(shí)候它會返回對象的question_text屬性, 但是你的書寫格式錯(cuò)誤,將這個(gè)方法定義到了類外面,它就變成了一個(gè)單一的函數(shù),跟這個(gè)類沒什么關(guān)系了, 你查詢的時(shí)候就會默認(rèn)返回一個(gè)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) # 每個(gè)模型是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

同時(shí)輸入

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?>]>>>

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

def __str__(self):return self.question_text

應(yīng)該放在

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.注意縮進(jìn):python - Django操作數(shù)據(jù)庫遇到問題,無法查詢更新后的數(shù)據(jù)

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

標(biāo)簽: Python 編程
主站蜘蛛池模板: 久久久精品久久久久特色影视 | 深夜做爰性大片中文 | 亚欧成人一区二区 | 毛片在线观看地址 | 黄片毛片在线免费看 | 综合久久一区二区三区 | 黄色片免费网站 | 日本在线观看一级高清片 | 在线视频观看你懂的我的 | 亚洲综合图色 | 一本一本久久a久久精品综合麻豆 | 爱爱网网站免费观看 | 国产日产欧美一区二区三区 | 日韩经典欧美一区二区三区 | 99www综合久久爱com | 久青草久青草高清在线播放 | 国产精品制服 | 美女被免费网站视频九色 | 最新中文字幕电影在线观看 | 亚洲一二区视频 | 成人国产精品一级毛片了 | 国产婷婷色综合成人精品 | 日韩精品免费一区二区 | 激情欧美成人狠狠色金八天国 | 亚洲第一二三四区 | 欧美aaa大片 | 最新国产精品视频 | 欧美高清视频www夜色资源 | 久久99爱视频 | 国产色产综合色产在线观看视频 | 全黄a一级毛片 | 色婷婷影视 | 成人福利免费在线观看 | 密桃av| 久久亚洲精品视频 | 69成人做爰免费视频 | 国产一区二区精品在线观看 | 成人夜色视频 | 成年人免费黄色片 | 欧美毛片aaaaa片久久久久 | 91专区在线观看 |