Django-从mysql数据库中检索所有细节

时间:2017-10-26 05:50:39

标签: mysql django django-views

我有一个连接到MySQL数据库的Django应用程序。 在MySQL数据库中,我有一个名为Evaluation with eval_id,eval_name和date作为列的表。

从我的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和日期。 我应该包括什么才能获得所有细节?

我的输出正好 2014_Term1 2014_Term2 2014_Term3 2015_Term1等等..我还希望ID和日期与每个条目相关联。

此外,如果我想获得特定条目,我怎样才能获得所有属性?

Evaluation.objects.get(eval_id = 1)仅返回名称。

2 个答案:

答案 0 :(得分:0)

尝试使用.values()

要获取所有值,您可以执行类似 -

之类的操作
eval_list = Evaluation.objects.filter(<your condition>).values('eval_id', 'eval_name','date')

EG。要使用 eval_id = 1 获取对象的所有值,请执行 -

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

答案 1 :(得分:0)

这个问题是基于一个完全的误解;并且,与之前的答案相反,您需要使用values

在模板上输出对象时,您会看到__str__方法定义的默认字符串表示形式。在您的情况下,这只显示名称。

但是其他字段仍然存在,您可以通过普通的属性查找来访问它们。例如:

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