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ù)進(jìn)入編輯頁的時候,就會報錯。
1.2 確認(rèn)錯誤
我先確認(rèn)這個錯誤到底是不是這里的錯誤
嘗試打開其他的表,都是正常的,只有在這個表時出錯,而且是百分百出錯
然后看代碼,檢查模型類和 admin 代碼,也沒發(fā)現(xiàn)問題
不使用瀏覽器,改用 paw 訪問,大概等了 1 分鐘,出結(jié)果了,看到結(jié)果我也知道為什么了

看到這個樣子的數(shù)據(jù),我立刻就確認(rèn)這是外鍵選擇控件的數(shù)據(jù),再看右邊的滑塊下邊顯然還有很多,一下子想起這個外鍵表有很多數(shù)據(jù)。
原來問題在這里,admin 默認(rèn)的外鍵選擇控件是滑動式的,十幾萬條數(shù)據(jù)就要生成十幾萬個 HTML 標(biāo)簽,就慢在這里了。

改成放大鏡?樣式的就好了
@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 線程池threadpool之實現(xiàn)
這篇文章主要介紹了淺談python 線程池threadpool之實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
Python數(shù)據(jù)分析之Matplotlib數(shù)據(jù)可視化
這篇文章主要介紹了Python數(shù)據(jù)分析之Matplotlib數(shù)據(jù)可視化,Matplotlib?是?Python?中常用的?2D?繪圖庫,它能輕松地將數(shù)據(jù)進(jìn)行可視化,作出精美的圖表2022-08-08
python numpy 反轉(zhuǎn) reverse示例
今天小編就為大家分享一篇python numpy 反轉(zhuǎn) reverse示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
淺析Python中Generator的工作原理與應(yīng)用
這篇文章主要為大家詳細(xì)介紹了Python中Generator的工作原理與應(yīng)用的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編?一起學(xué)習(xí)一下2024-12-12
Django壓縮靜態(tài)文件的實現(xiàn)方法詳析
最近在學(xué)習(xí)Django配置靜態(tài)文件,下面這篇文章主要給大家介紹了關(guān)于Django壓縮靜態(tài)文件的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08

