仅限 Django 查询集
Django Queryset only
我只想 select 模型查询集中的几个字段。我看到了这个 link: Django queryset only 我以为我实现了它,但我仍然得到了整个查询集。
这是我的项目view.py:
from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.views import generic
from django.utils import timezone
from .models import Project
# Create your views here.
class IndexView(generic.ListView):
model = Project.objects.only("name","jobNumber", "contractor", "assigned_to", "created_date")
template_name = 'project/index.html'
def get_queryset(self):
#return Project.objects.all()
return Project.objects.only("name","jobNumber", "contractor", "assigned_to", "created_date")
class DetailView(generic.DetailView):
model = Project
template_name = 'project/detail.html'
这是我的 index.html 模板
{% load render_table from django_tables2 %}
{% block content %}
<h1>Projects</h1>
<ul>
{% for project in project_list %}
<li><a href="{% url 'project:detail' project.id %}">{{ project.name }}</a></li>
{% endfor %}
</ul>
{% render_table project_list %}
{% endblock %}
上面的代码给了我项目模型中的所有字段。我如何 select 项目中只有几个字段?
任何帮助将不胜感激
only()
specifies which fields should be populated from the database, but it does not prevent other fields on the model from being accessed. If you want to limit the fields available in the resultant objects then you should use values()
or values_list()
代替。请注意,它们都不是 returns 模型,因为使用模型仍会使其他字段可用。
我只想 select 模型查询集中的几个字段。我看到了这个 link: Django queryset only 我以为我实现了它,但我仍然得到了整个查询集。
这是我的项目view.py:
from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.views import generic
from django.utils import timezone
from .models import Project
# Create your views here.
class IndexView(generic.ListView):
model = Project.objects.only("name","jobNumber", "contractor", "assigned_to", "created_date")
template_name = 'project/index.html'
def get_queryset(self):
#return Project.objects.all()
return Project.objects.only("name","jobNumber", "contractor", "assigned_to", "created_date")
class DetailView(generic.DetailView):
model = Project
template_name = 'project/detail.html'
这是我的 index.html 模板
{% load render_table from django_tables2 %}
{% block content %}
<h1>Projects</h1>
<ul>
{% for project in project_list %}
<li><a href="{% url 'project:detail' project.id %}">{{ project.name }}</a></li>
{% endfor %}
</ul>
{% render_table project_list %}
{% endblock %}
上面的代码给了我项目模型中的所有字段。我如何 select 项目中只有几个字段?
任何帮助将不胜感激
only()
specifies which fields should be populated from the database, but it does not prevent other fields on the model from being accessed. If you want to limit the fields available in the resultant objects then you should use values()
or values_list()
代替。请注意,它们都不是 returns 模型,因为使用模型仍会使其他字段可用。