私はDjangoを初めて使用し、他の誰かが作成してデータを入力したmysqlデータベースを使用しようとしています。
データを取得したいテーブルと同じ名前のモデルを作成しました。モデルは次のとおりです。
class Study(models.Model):
study_name = models.TextField(default='Unknown')
description = models.TextField(default='Unknown')
language = models.TextField(default='Unknown')
number_of_years = models.IntegerField(default='0')
データベースが接続されていますが、管理者に移動すると、そこにデータが表示されません
これで私を助けてください
ステップバイステップのソリューションは次のようになります。
study_table
DESCRIBE study_table;
テーブル名、列タイプ、および列名に基づいて、すべてに一致するようにモデルを定義します。Djangoモデルは多くの自動命名を行うため、モデルがデータベースと一致することを確認するために強制的に命名する必要があります。原則は次のとおりです。
study_name
はテーブル内の同じ名前の列と一致する必要がありますstudy_table
。class Study(models.Model):
study_name = models.TextField(default='Unknown')
description = models.TextField(default='Unknown')
language = models.TextField(default='Unknown')
number_of_years = models.IntegerField(default=0)
class Meta:
db_table = study_table
補足:IntegerField
デフォルトは文字列'0'
です。
study_app
モデルを含むアプリ(これを呼びます)が有効になっていること、データベースがdjango設定で適切に構成されていることを確認し、管理シェルからデータにアクセスしてみてください(python manage.py shell
):>>> from study_app.models import Study
>>> Study.objects.first()
これは答えを返すはずです。そうでない場合、モデルはデータベースデータと一致しません。あなたが考えることができるいくつかの提案:
study_name
おそらくmodels.CharField(max_length=255)
または同様のはずですdescription
空にする必要があります models.TextField(blank=True)
language
おそらくオプション付きmodels.CharField
であるはずchoices
です。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加