日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Django?報錯:Broken?pipe?from?('127.0.0.1',?58924)的解決_python

作者:Inotime ? 更新時間: 2022-11-16 編程語言

問題

Django 報錯 [2019-09-16 16:47:27,981] - Broken pipe from ('127.0.0.1', 58924)

Broken pipe from xxx 這個錯誤其實比較寬泛,比如運算量太大、耗時太長等,一定要結合實際情況分析問題。

1. admin 打開編輯頁報這個錯

1.1 相關信息

我這次是在 admin 中遇到的。我有一個模型類 A 分別關聯了另外兩個模型類 B、C,而 B、C 中大概分別有 5、10萬數據。

A 表的 admin 我是這樣寫的:

@admin.register(A)
class AAdmin(admin.ModelAdmin):
? ? list_display = (
? ? ? ? 'b', 'c',
? ? ? ? 'is_valid', 'create_time', 'update_time',
? ? )

每次打開這個表的列表頁的時候是正常的,當我要點擊某一個具體的數據進入編輯頁的時候,就會報錯。

1.2 確認錯誤

我先確認這個錯誤到底是不是這里的錯誤

嘗試打開其他的表,都是正常的,只有在這個表時出錯,而且是百分百出錯

然后看代碼,檢查模型類和 admin 代碼,也沒發現問題

不使用瀏覽器,改用 paw 訪問,大概等了 1 分鐘,出結果了,看到結果我也知道為什么了

paw_result

看到這個樣子的數據,我立刻就確認這是外鍵選擇控件的數據,再看右邊的滑塊下邊顯然還有很多,一下子想起這個外鍵表有很多數據。

原來問題在這里,admin 默認的外鍵選擇控件是滑動式的,十幾萬條數據就要生成十幾萬個 HTML 標簽,就慢在這里了。

改成放大鏡?樣式的就好了

@admin.register(A)
class AAdmin(admin.ModelAdmin):
    list_display = (
        'b', 'c',
        'is_valid', 'create_time', 'update_time',
    )
    raw_id_fields = ('b', 'c')

這樣就能正常訪問了。

原文鏈接:https://blog.csdn.net/lnotime/article/details/100894084

欄目分類
最近更新