我有一个连接到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)仅返回名称。
答案 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 %}