2016-04-07 23 views
0

モデルのクエリセットでいくつかのフィールドしか選択しません。私はこのリンクを見た:Django queryset onlyと私はそれを実装すると思ったが、私はまだ全体のクエリを設定しています。Django Querysetのみ

これは私のプロジェクト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' 

これは、上記のコードは私のプロジェクトモデル内のすべてのフィールドを与える

{% 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 %} 

私のindex.htmlテンプレートです。プロジェクトのいくつかのフィールドだけを選択するにはどうすればよいですか?

任意の助けを大幅フィールドがデータベースから取り込まなければならないが、それがアクセスされているから、モデルの他のフィールドを妨げない

答えて

1

only()指定を理解されるであろう。結果のオブジェクトで利用可能なフィールドを制限する場合は、values()またはvalues_list()を代わりに使用する必要があります。モデルを使用すると、他のフィールドが利用可能になるため、モデルを返さないことに注意してください。

関連する問題