django 運行報錯彙總

  記錄本身在使用django開發過程當中遇到的問題,不間斷更新。python

(1) 獨立運行普通Python腳本調用django中定義的類報錯

 報錯信息:django

  django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.json

產生緣由:函數

  在django 項目中想要單獨運行一個Python腳本,腳本中調用了django項目的模塊函數,本覺得順利執行,結果報錯。spa

解決辦法:code

#!/usr/bin/env python3
# coding: utf-8
import os,django

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "superops.settings")
django.setup()


def collectasset():
    from assets.AssetApi import Asset
    obj = Asset()
    info_list = obj.collect_all_minions()
    obj.save_info(info_list)


if __name__ == "__main__":
    collectasset()

  

(2)queryset object has no attribute meta

產生緣由:對象

  獲取數據對象時,經過 filter 來獲取的,並非get,若是想使用對象的屬性,須要經過get獲取。blog

obj = Asset.object.filter(name='abc')
obj = Asset.object.get(name='abc')
obj = get_object_404(Asset, name='abc')

  

(3)Django 項目啓動報錯  Error: [WinError 10013] 以一種訪問權限不容許的方式作了一個訪問套接字的嘗試。

產生緣由:utf-8

  啓動的端口被佔用,更換啓動端口,或關閉佔用端口的程序。開發

 

(4)AttributeError: 'dict' object has no attribute '_meta' 或者 TypeError: Object of type 'QuerySet' is not JSON serializable

from django.core import serializers
def index(request):
    data = models.Record.objects.all()
    result = serializers.serialize("json", data)
    return HttpResponse(result)
相關文章
相關標籤/搜索