[英]Django ) Postgresql model ERROR
在我的django應用中的models.py中,我有以下模型:
from django.db import models
from django.contrib.postgres.fields import *
class lkmModel(models.Model):
#Profile Image
profileUrls = ArrayField(base_field=models.TextField,size=5)
#profileUrls = models.TextField()
"""profileUrl2 = models.TextField()
profileUrl3 = models.TextField()
profileUrl4 = models.TextField()
profileUrl5 = models.TextField()"""
#Profile Basic
name = models.CharField(max_length=20)
status = models.CharField(max_length=20)
age = models.IntegerField()
residence = models.CharField(max_length=20)
bloodType = models.CharField(max_length=20)
religion = models.CharField(max_length=20)
#KEY_WORD
personaltiy = models.TextField()
appearance = models.TextField()
hobby = models.TextField()
ability = models.TextField()
idealType = models.TextField()
career = models.TextField()
best = models.TextField()
badges = ArrayField(base_field=models.CharField(max_length=10))
manual = models.TextField()
def __str__(self):
return self.name
我正在嘗試在lkm.py的models.py中創建lkmModel的實例。lkm.py的對應代碼如下:
from myApp.models import lkmModel
def createModel(self,pictures,basics,keywords,badges,manual):
lkmModelOne = lkmModel(profileUrls = pictures, name = basics[0] , status = basics[1] ,
bloodType = basics[2] , age = basics[3] , religion = basics[4] , residence = basics[5],
personality= keywords[0], appearance = keywords[1] , hobby = keywords[2] , ability = keywords[3],
idealType = keywords[4], career = keywords[5] , best = keywords[6], badges = badges , manual = manual)
lkmModelOne.save()
當執行lkm.py時,出現以下錯誤:
Traceback (most recent call last):
File "/Users/kyungmoon/projectDicrectory/project/myApp/lkm.py", line 8, in <module>
from myApp.models import lkmModel
File "/Users/kyungmoon/projectDicrectory/project/myApp/models.py", line 2, in <module>
from django.contrib.postgres.fields import *
File "/Users/kyungmoon/venv/myvenv/lib/python3.4/site-packages/django/contrib/postgres/fields/__init__.py", line 1, in <module>
from .array import * # NOQA
File "/Users/kyungmoon/venv/myvenv/lib/python3.4/site-packages/django/contrib/postgres/fields/array.py", line 207, in <module>
class ArrayLenTransform(Transform):
File "/Users/kyungmoon/venv/myvenv/lib/python3.4/site-packages/django/contrib/postgres/fields/array.py", line 209, in ArrayLenTransform
output_field = IntegerField()
File "/Users/kyungmoon/venv/myvenv/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 166, in __init__
self.db_tablespace = db_tablespace or settings.DEFAULT_INDEX_TABLESPACE
File "/Users/kyungmoon/venv/myvenv/lib/python3.4/site-packages/django/conf/__init__.py", line 55, in __getattr__
self._setup(name)
File "/Users/kyungmoon/venv/myvenv/lib/python3.4/site-packages/django/conf/__init__.py", line 41, in _setup
% (desc, ENVIRONMENT_VARIABLE))
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.
如您所見,該錯誤來自於postgresql和postgresql的arrayField。 但是在models.py中,我以正確的方式創建了一個lkmModel,不是嗎?
為什么會這樣?
我確實在本地計算機上安裝了postgresql,並創建了一個名為lkmDB的數據庫和一個用於此的表。 我在項目的settings.py中的數據庫設置如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'lkmDB',
'USER': 'kyungmoon',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}
這些都與您發布的代碼無關。
您大概是在純Python外殼中執行此操作; 您應該改為使用python manage.py shell
啟動Django shell。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.