Django常見錯誤信息匯總及解決方案

2021-02-20 Python Web與Django開發

小編我前面已經寫過一篇關於Django常見錯誤的文章了,見Django常見錯誤總結: 細數我們一起走過的大坑。該文比較適合新手閱讀,防止學習Django過程中入坑。今天小編我要總結實際Django開發過程中和debug過程中經常碰到的錯誤信息以及如何解決它們。本文適合所有Python Web開發學習者和工作者,值得加入你的微信收藏。Django之所以優秀,就是因為它在開發環境下提供了豐富的debug報錯信息,從而減少了在生產環境下產生bug。本文會嘗試著為那些錯誤信息提供解決方案。

錯誤1

---

You are trying to add a non-nullable field 'mod_date' to book without a default; we can't do that (the database needs something to populate existing rows).

Please select a fix:

 1) Provide a one-off default now (will be set on all existing rows with a null value for this column)

 2) Quit, and let me add a default in models.py

--

出現原因和解決方案

出現這個錯誤的原因是因為你修改了模型models.py,增加了一些欄位,卻沒有提供默認值。對於新增的欄位,你必需要設置其為null或者提供默認值。本例中,你可以將新增欄位改為mod_date = models.DateField(null=True), 然後重新運行python manage.py makemigrations和python manage.py migrate. 

錯誤2

----

ImportError: No module named 'MySQLdb'

-

出現原因和解決方案

出現這個錯誤的原因是因為試圖使用MySQL作為資料庫,卻沒有安裝相應模塊。解決方案如下:

        import pymysql  

        pymysql.install_as_MySQLdb()

錯誤3

----

RuntimeWarning: DateTimeField received a naive datetime

-

出現原因和解決方案

出現這個錯誤的原因在於你沒有在settings.py裡設置時區,Django不知道提供哪個時區的時間好。小編強烈建議你給所有的Django項目設置時區。如果你要使用中國時間,可以使用TIME_ZONE = 'Asia/Shanghai'。請注意: 在Django的配置文件裡有兩個配置參數是跟時間與時區有關的,分別是TIME_ZONE和USE_TZ

如果USE_TZ設置為True時,Django會使用系統默認設置的時區,即芝加哥時間America/Chicago,此時的TIME_ZONE不管有沒有設置都不起作用。

如果USE_TZ 設置為False,而TIME_ZONE設置為None,則Django還是會使用默認的America/Chicago時間。

若TIME_ZONE設置為其它時區的話,則還要分情況。如果是Windows系統,則TIME_ZONE設置是沒用的,Django會使用本機的時間。如果為其他系統,則使用該時區的時間,入設置USE_TZ = False, TIME_ZONE = 'Asia/Shanghai', 則使用上海的UTC時間。

錯誤4

----

UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list:

-

出現原因和解決方案

出現這個錯誤的原因是obj.objects.all()的列表是無序的,使用Paginator類分頁會出錯,因為每次分頁第一頁都可能出現不同的結果。解決方案是在查詢結果上加上order_by排序, 比如obj.objects.all().order_by("id")。

錯誤5

----

NoReverseMatch error at /xxx/

-

出現原因和解決方案

出現這個錯誤的原因是命名url反向解析還需要你提供參數,而且參數數量也要一致。比如你直接使用{% url "product_detail" %}肯定會出現這個錯誤,因為你忘了提供product.id啊。如果你不提供id,Django怎麼知道這個url指向哪個產品詳情呢? 正確的用法是使用{% url "product_detail" product.id %}。 如果你要同時傳遞兩個或多個參數,你可以參照{% url "product_detail" product.id shop.id %}。

錯誤6

----

TemplateDoesNotExist at /xxx/

-

出現原因和解決方案

出現這個錯誤的原因是你尚未在templates目錄創建相應的模板,添加上就好了。

參考文章:

http://blog.51cto.com/daibaiyang119/2066741

相關焦點

  • ubuntu18.04 django 連接 mysql 資料庫方法和常見錯誤總結
    =32) (5)執行資料庫遷移的命令python3 manage.py makemigrations python3 manage.py migrate以上步驟執行完了之後如果沒有錯誤提示說明 django 已經成功連接上了 mysql 資料庫。
  • RocketMQ消息發送常見錯誤與解決方案
    本文將結合自己使用RocketMQ的經驗,對消息發送常見的問題進行分享,基本會遵循出現問題,分析問題、解決問題。1、No route info of this topic無法找到路由信息,其完整的錯誤堆棧信息如下:
  • 10個常見錯誤報告原因及解決方案
    但是,與此同時,賣家也需要面對eBay發送的系統錯誤報告,當賣家未在特定步驟中遵循準則時,eBay會發送一些系統錯誤報告。下文是你在eBay上銷售或使用ebay集成應用程式時可能會遇到的所有eBay錯誤報告,以及它們的原因和解決方案,以避免在銷售過程中遇到錯誤報告。
  • Django性能指南:如何提升Django應用速度
    不同的Web應用有著不同的瓶頸,一旦解決,性能將得到質的飛躍。根據您的應用特點,找到適合的方案才是解決瓶頸問題的根本。儘管本文針對Django開發人員,但這裡提到的優化技巧也適用於其他技術棧。在前端方面,它對使用Heroku和無法訪問CDN的開發人員尤為有用。
  • django中遇到錯誤:Forbidden CSRF cookie not set
    表示django全局發送post請求均需要字符串驗證功能:防止跨站請求偽造的功能工作原理:客戶端訪問伺服器端,在伺服器端正常返回給客戶端數據的時候,而外返回給客戶端一段字符串,等到客戶端下次訪問伺服器端時,伺服器端會到客戶端查找先前返回的字符串
  • Django Form表單完整使用流程
    在《Django HTML表單實例應用》一節,我們使用 HTML 表單的方式實現了書籍的搜索功能,那麼通過本章節中對 Django Form 表單系統的講解,我們可以嘗試使用表單系統來實現這個功能了,在本節我們將匯總相關知識點
  • 升級Windows 10常見問題解決方案匯總
    為了幫助大家順利升級、安裝、使用Windows 10系統,於是今天就來將一些升級Windows 10時常見的問題進行匯總解答。一 、升級過程中出現卡死/黑屏,無法啟動出現安裝過程卡死,黑屏的情況是比較複雜的,如果沒有提示錯誤代碼,那麼建議大家通過以下三種方法嘗試解決:1,系統恢復;2,重置此電腦;3,返回上一個系統。
  • Android常見崩潰閃退問題的解決方案
    下面就詳細探索分析App常見崩潰的問題和對應的解決方案。NullPointerException 解決方案解決方案6.0之後,獲取手機敏感信息時候,需要動態申請權限,只有用戶授權後才可以獲取手機敏感信息。
  • 一個完整的Django入門指南
    它提供了一系列工具和功能,可以解決許多與Web開發相關的常見問題,比如:安全功能,資料庫訪問,會話,模板處理,URL路由,國際化,本地化,等等。使用諸如 Django 之類的網絡框架,使我們能夠以標準化的方式快速開發安全可靠的Web應用程式,而無需重新發明輪子。那麼,Django有什麼特別之處呢?對於初學者來說,它是一個Python Web框架,這意味著你可以受益於各種各樣的開源庫包。
  • Django第十八課
    from django.shortcuts import renderfrom django.contrib.contenttypes.models import ContentTypefrom read_count.utils import get_seven_days_read_data, get_today_hot_data
  • 60個Vue常見問題匯總及解決方案
    Q32:Error in event handler for 「click」:」xxx」這個問題大多都是你寫的代碼有問題.你的事件觸發了,但是組件內部缺少對應的實現或者變量,所以拋出事件錯誤。解決方案:看著報錯慢慢排查Q33: 組件的通訊有哪幾種啊!
  • OpenStack 應用中 5 個常見錯誤的解決思路
    openstack-dashboard.confWSGIDaemonProcess dashboardWSGIApplicationGroup %{GLOBAL}WSGIProcessGroup dashboard #這一項在修改時很容易忽略確保4項都在WSGISocketPrefix run/wsgiWSGIScriptAlias /dashboard /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgiAlias
  • 10道題教你使用python Django框架來實現web應用,值得收藏
    d:\django\web> python manage.py runserver 1.1.1.1:8000運行內置的Web伺服器。5、想跟你請教個問題:能用django做旅遊調查網站嗎,通過調查班級同學的旅遊意向,將信息存入資料庫,然後進行簡單的分析,得出最佳旅遊地點,這種想法可行嗎?第一部分收集和存儲信息的需求和django相關。這是一個簡單的Web應用。
  • Python + Django 開發實戰(下)
    開發中日誌記錄能幫我們記錄信息定位問題;單元測試幫助我們在迭代開發過程及時發現問題,減少bug的引入; 而程序調優與重構,是一個永恆的話題。 日誌的重要性想必不用多說。 在我看來,日誌的作用主要有兩點:運營數據支撐。 比如頁面訪問情況,接口調用情況等等,方便運營人員後續的統計分析。  錯誤回溯定位。
  • 好程式設計師Python培訓分享Django中間件基礎用法詳解
    2.在utils文件夾中創建中間件py文件 如用於登陸驗證的中間件loginCheck.py from django.http import HttpResponseRedirect from django.utils.deprecation import MiddlewareMixin
  • Django實戰多語言
    配置文件,注意中間件插入順序MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware
  • Python初學者常見錯誤及解決方法
    這是為青少年編寫的《Python趣味編程:從入門到人工智慧》的附錄B的內容,列出了Python初學者常見錯誤及解決方法。
  • Nginx常見502故障的一些解決方案與匯總
    下面給大家總結了一些排查問題與解決方案,來看看吧!Nginx 502錯誤情況1:網站的訪問量大,而php-cgi的進程數偏少。針對這種情況的502錯誤,只需增加php-cgi的進程數。Nginx 502錯誤情況2:CPU佔用率、內存佔用率非常高,遭到CC攻擊.解決方法請參考:LinuxVPS簡單解決CC攻擊Nginx 502錯誤情況3:CPU佔用率不高,內存溢出。檢查一下網站程序有沒有問題?
  • Python 裝飾器填坑指南 | 最常見的報錯信息、原因和解決方案
    裝飾器學習資料,推薦參考 RealPythonhttps://realpython.com/primer-on-python-decorators/本文主要匯總記錄 Python 裝飾器的常見踩坑經驗,列舉報錯信息、原因和解決方案,供大家參考。
  • Django 1.10中文文檔-聚合
    models.DateField()class Store(models.Model):    name = models.CharField(max_length=300)    books = models.ManyToManyField(Book)    registered_users = models.PositiveIntegerField()下面是在上面的模型上如何執行常見的聚合查詢