データベースに存在するDjango
という名前のテーブルにアクセスしてその内容を表示しようとする簡単なアプリケーションを作成しました。私は公式ドキュメントに従い、理解できる限り以下のコードを実装しました。しかし、以下の手順は不完全であり、データのフェッチに失敗していると思います。私は何かが足りないので、誰かがそれを指摘することができます。fruits
PostgreSQL
Django
fruits.objects.all()
表:果物
models.py
from django.db import models
class fruits(models.Model):
ID = models.CharField(max_length=20)
Name = models.CharField(max_length=20)
def __str__(self):
return self.Name
views.py
from database.models import fruits
def index(request):
data = fruits.objects.all()
print(len(data))
for item in data:
print(item)
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '<database_name>',
'USER': '<user_name>',
'PASSWORD': '<password>',
'HOST': '<host_name>',
'PORT': '',
}
}
デフォルトでは、Djangoはappname_modelname
モデルの新しいテーブルを作成します。したがって、あなたの場合、このクエリセットは、ではなくテーブルfruits.objects.all()
からデータをフェッチします。メタオプションを使用してテーブル名を指定できます。たとえば、モデルを既存のテーブルにリンクするには、モデルに次を追加します。app_fruits
fruits
db_table
fruits
fruits
Meta
class fruits(models.Model):
ID = models.IntegerField(max_length=20)
Name = models.CharField(max_length=20)
class Meta:
db_table = 'fruits'
def __str__(self):
return self.Name
UPD
Djangoid
はID
、この追加primary_key
オプションをID
フィールドに変更するために、フィールドがデフォルトでは主キーではないことを期待しています。
ID = models.IntegerField(max_length=20, primary_key=True)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加