Django?報錯:Broken?pipe?from?('127.0.0.1',?58924)的解決
問題
Django 報錯 [2019-09-16 16:47:27,981] - Broken pipe from ('127.0.0.1', 58924)
Broken pipe from xxx 這個錯誤其實比較寬泛,比如運算量太大、耗時太長等,一定要結(jié)合實際情況分析問題。
1. admin 打開編輯頁報這個錯
1.1 相關(guān)信息
我這次是在 admin 中遇到的。我有一個模型類 A 分別關(guān)聯(lián)了另外兩個模型類 B、C,而 B、C 中大概分別有 5、10萬數(shù)據(jù)。
A 表的 admin 我是這樣寫的:
@admin.register(A) class AAdmin(admin.ModelAdmin): ? ? list_display = ( ? ? ? ? 'b', 'c', ? ? ? ? 'is_valid', 'create_time', 'update_time', ? ? )
每次打開這個表的列表頁的時候是正常的,當(dāng)我要點擊某一個具體的數(shù)據(jù)進入編輯頁的時候,就會報錯。
1.2 確認錯誤
我先確認這個錯誤到底是不是這里的錯誤
嘗試打開其他的表,都是正常的,只有在這個表時出錯,而且是百分百出錯
然后看代碼,檢查模型類和 admin 代碼,也沒發(fā)現(xiàn)問題
不使用瀏覽器,改用 paw 訪問,大概等了 1 分鐘,出結(jié)果了,看到結(jié)果我也知道為什么了
看到這個樣子的數(shù)據(jù),我立刻就確認這是外鍵選擇控件的數(shù)據(jù),再看右邊的滑塊下邊顯然還有很多,一下子想起這個外鍵表有很多數(shù)據(jù)。
原來問題在這里,admin 默認的外鍵選擇控件是滑動式的,十幾萬條數(shù)據(jù)就要生成十幾萬個 HTML 標簽,就慢在這里了。
改成放大鏡?樣式的就好了
@admin.register(A) class AAdmin(admin.ModelAdmin): list_display = ( 'b', 'c', 'is_valid', 'create_time', 'update_time', ) raw_id_fields = ('b', 'c')
這樣就能正常訪問了。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實現(xiàn)對csv文件的列的內(nèi)容讀取
今天小編就為大家分享一篇python實現(xiàn)對csv文件的列的內(nèi)容讀取,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07Opencv-Python圖像透視變換cv2.warpPerspective的示例
今天小編就為大家分享一篇關(guān)于Opencv-Python圖像透視變換cv2.warpPerspective的示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04python3+PyQt5 實現(xiàn)Rich文本的行編輯方法
今天小編就為大家分享一篇python3+PyQt5 實現(xiàn)Rich文本的行編輯方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06