簡體   English   中英

Django Django_Tables2 字段

[英]Django Django_Tables2 Fields

我只想在 Django_Table2 元素中選擇幾個字段。 我一直在查看 django_table2 網站django_table2 ,但我找不到太多關於如何限制 django_table2 元素中使用的字段數量的信息。 這是我的代碼。

這是我的項目 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

class IndexView(generic.ListView):
    model = Project.objects.values("id","name","jobNumber", "contractor", "assigned_to", "created_date")
    template_name = 'project/index.html'

    def get_queryset(self):
        return Project.objects.values("id","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 %}

如何限制使用 django_tables2 顯示的字段/列數?

教程說“雖然簡單,但將查詢集直接傳遞給 {% render_table %} 不允許進行任何自定義。為此,您必須定義一個 Table 類。” API顯示 Table.Meta 具有字段和排除屬性,類似於 ModelForms。

一種方法是擁有表類並添加元排除以刪除您想要的列:

class MyTable(tables.Table):
    class Meta:
        model = MyModel
        exclude = ('unwanted_col', 'unwanted_col2',)

然后在視圖邏輯中有:

table = MyTable(data_list)
RequestConfig(request).configure(table)
return render(request, 'myapp/index.html', {'table': table})

我的 views.py 文件中使用的導入包含與 snipits 相關的代碼:

import django_tables2 as tables
from django_tables2.config import RequestConfig
from django.shortcuts import render

並在索引 html 中有渲染表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM