亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

有個不細心造成的問題,放在讓我銘記一下,'NoneType' object has no attribute 'content'

https://img1.sycdn.imooc.com//5d0899970001776404700139.jpg

學到本章節時,修改完URL以及視圖函數后,嘗試運行,輸入網址 127.0.0.1:8000/detail/1? 發現報錯,不管輸入1還是2、4、5、6都報錯。

檢查代碼半天也沒發現哪里不對,就嘗試輸入了25、26,居然成功打開了文章詳細頁。

思考到article_id是文章發布時候的順序號,而我在之前執行了多次 import_data.py導入數據,后面又刪除了一些前面的文章,

所以我現在文章 id起始號是24。 這個坑是自己埋下的,刪除數據要小心啊。


https://img1.sycdn.imooc.com//5d089a8c000105d902880090.jpg


正在回答

4 回答

嗯嗯,這里記錄的是表象,我簡單提一下背后的原因。
這種情況是數據庫anto_increment自增值引起的,如果添加了行數據又刪除了,自增值是不會回退的,會一直自增下去,這就導致了同學記錄的這個情況,另外這個值可以通過數據庫重置。
希望對你有所幫助,祝你學習愉快。

3 回復 有任何疑惑可以回復我~
#1

Ethan_Ban 提問者

謝謝老師
2019-06-22 回復 有任何疑惑可以回復我~

這個問題個人理解是程序的健壯性不夠導致的,當然這不是這次課程的重點,介意的可以將方法get_detail_page進行如下改造,加一個判斷即可。

def?get_detail_page(request,?article_id):
????all_article?=?Article.objects.all()
????curr_article?=?None
????for?article?in?all_article:
????????if?article.article_id?==?article_id:
????????????curr_article?=?article
????????????break
????if?curr_article:
????????section_list?=?curr_article.content.split('\n')
????????return?render(request,?'blog/detail.html',
??????????????????????{
??????????????????????????'curr_article':?curr_article,
??????????????????????????'section_list':?section_list
??????????????????????})
????else:
????????return?HttpResponse('當前文章不存在')


0 回復 有任何疑惑可以回復我~

老師,請問如何重置?

1 回復 有任何疑惑可以回復我~

同樣的坑我也踩了,好傷心

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

有個不細心造成的問題,放在讓我銘記一下,'NoneType' object has no attribute 'content'

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號