2017-10-26 19 views
-3

私はMySQLデータベースに接続されたDjangoアプリケーションを持っています。 MySQLデータベースでは、評価としてeval_id、eval_name、dateという列のテーブルがあります。Django- mysqlデータベースのすべての詳細を取得します

私のDjangoビューから、以下のコードで関連するデータを取得しようとしています。

from django.http import HttpResponse, JsonResponse 
from .models import Teacher, Subject, Evaluation, Teaches, eval_summary 

# Create your views here. 
def index(request): 
    eval_list = Evaluation.objects.all() 
    return HttpResponse(eval_list) 

ここで、出力では、eval_nameエントリだけが取得され、eval_idおよびdateは取得されません。 すべての詳細を取得するにはどうすればよいですか?

私の出力はちょうど 2014_Term1 2014_Term2 2014_Term3 2015_Term1です。私はまた、IDと日付を各エントリに関連付けることを望みます。

また、特定のエントリを取得したい場合は、どのようにすべての属性を取得することができますか?

Evaluation.objects.get(eval_id = 1)は名前を返します。

+1

'.values()'メソッドを試すことができます。例えば。 'eval_list = Evaluation.objects.all()。values( 'eval_id'、 'eval_name'、 'date')'。 – aquaman

+0

また、Evaluation.objects.get(eval_id = 1)を使用しようとすると、どのようにすべてのフィールドを取得できるのか教えていただけますか? – NSP

+0

私が回答として掲示したコードを確認してください。 – aquaman

答えて

0

.values()を試してみてください。

eval_list = Evaluation.objects.filter(<your condition>).values('eval_id', 'eval_name','date') 

例: -

は、すべての値を取得するには、あなたのような何かを行うことができます。 eval_id = 1 とオブジェクトのすべての値を取得するには、やる -

eval_list = Evaluation.objects.filter(eval_id = 1).values('eval_id', 'eval_name','date') 
+0

2つのモデルをリンクしてデータをフェッチすることも可能ですか?以前は、テーブルをリンクしてデータを取得するSQLクエリを作成しました。どのように私は生のSQLクエリを挿入せずにDjangoでこれを行うことができますか?それも可能ですか? – NSP

+0

リンクすると、foreignKeyまたはm2mフィールドの値を使用することを意味しますか?はいの場合は、はい。 '.values()'と '__'表記を使って値を得ることができます。こちらをご覧ください[リンク](https://docs.djangoproject.com/en/1.11/ref/models/querysets/#values)。 – aquaman

+0

私は3つのテーブル、教師、科目、教授テーブルを持っています(teacher_idとsubject_idは外部キーです)。今私はすべての教師と科目を取得したい場合、どのようにリンクするのですか?以前はSQLを使って、 'teacher_id、name、subject_idを教師、科目から選んで使用しました。(teaches.teacher_id = teacher.teacher_idとteaches.subject_id = subjectです。subject_id) ' – NSP

0

をこの質問は完全な誤解に基づいています。そして、以前の答えに反して、あなたはではありませんvaluesを使用する必要があります。

テンプレートにオブジェクトを出力すると、__str__メソッドで定義されているデフォルトの文字列表現が表示されます。あなたの場合、それは名前だけを示しています。

他のフィールドはです。まだそこにはであり、通常の属性検索でアクセスします。例:

{% for eval_object in eval_list %} 
    {{ eval_object.eval_name }} 
    {{ eval_object.eval_date }} 
{% endfor %} 
+0

それは私のテンプレート(つまりhtmlファイル)で私は個々の値にアクセスしなければならないのでしょうか?しかし、私がviews.pyファイルで受け取ったデータに対して何らかの処理をしたいのであれば、どうしたらよいでしょうか? – NSP

+0

何ですか?私はあなたの質問に答えていた。もちろん、標準のドット表記法を使用することで、まったく同じ方法で、ビュー内の値にアクセスすることができます。 –

+0

ありがとうございました。私はそれを行います。私はこのデータをテーブルの形で表示したい。以前は生のSQLクエリを実行し、その結果をjson形式で返しました。 – NSP

関連する問題