标签: django-tables2

选择django_tables2中的所有行

我试图通过单击CheckBoxColumn中的上部复选框来选择表中的所有行,并使用以下定义:

selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
Run Code Online (Sandbox Code Playgroud)

但是没有选择行,还有什么我需要做的吗?我使用的是django 1.4.1和django_tables2 0.13.0.

django django-tables2

5
推荐指数
1
解决办法
2716
查看次数

使用django-tables2时是否可以将模板标签应用于<td>?

我正在使用django-tables2为我创建我的表.我需要将模板标签应用于其中一列中的每个单元格().为了将模板标签应用于一列,似乎需要花费很多额外的精力来创建自定义表格布局.有没有办法在django-tables2中执行此操作?

更新:

我可能没有解释我正在寻找的东西.我不相信这会奏效.

我的代码:

class CombineTable(tables.Table):  
    build_no = tables.LinkColumn('run', args=[A('release'), A('id')], verbose_name="Build")  
    flavor = tables.Column(verbose_name="Flavor")  
    pass_rate_pct = tables.Column(verbose_name="Image Pass Rate")
Run Code Online (Sandbox Code Playgroud)

我希望pass_rate_pct中的每个都使用class()中的模板标记{{pass_rate_color}},其中pass_rate_color然后根据pass_rate_pct的输出输出特定样式.

django django-templates django-tables2

5
推荐指数
1
解决办法
937
查看次数

如何使用Django通用视图过滤表?

我正在尝试使用最常见/标准/推荐的Django 1.6方法创建具有分页,排序和过滤的表视图.这似乎是基于通用类的视图和django-tables2.我找到了至少两个不同的如何添加过滤的例子,一个用django-filters和crispy-forms,另一个用django_filters,但都没有包含完整的工作示例.当我遵循任何一种方法时,我都会陷入困境中.使用Nicolas Kuttler的脆弱方法,我有:

models.py

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)

tables.py

import django_tables2 as dt2
from .models import Author

class AuthorTable(dt2.Table):
    class Meta:
        model = Author
Run Code Online (Sandbox Code Playgroud)

如果我理解正确的话,PagedFilteredTableView是一个泛型类,然后我继承AuthorView,而不是另一个例子,其中FilteredSingleTableView,我认为应该被理解为类似,如果Author是表,AuthorFilteredSingleTableView.

views.py

from .tables import AuthorTable
from .models import Author
from django_tables2 import SingleTableView

class PagedFilteredTableView(SingleTableView):
    """
    Generic class from http://kuttler.eu/post/using-django-tables2-filters-crispy-forms-together/
    which should probably be in a utility file
    """
    filter_class = None
    formhelper_class = None
    context_filter_name = 'filter'

    def get_queryset(self, **kwargs):
        qs = super(PagedFilteredTableView, self).get_queryset()
        self.filter …
Run Code Online (Sandbox Code Playgroud)

django django-filter django-class-based-views django-tables2

5
推荐指数
1
解决办法
9244
查看次数

django-filter:使用request.user扩展过滤器查询

我需要在django-filter请求中添加一个额外的filter属性(在后台)。

我的模特:

class Event(models.Model):
  name=models.CharField(max_length=254)
  location=models.ForeignKey(Place)
  invited_user=models.ManyToManyField(User,null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

使用过滤器可以过滤具有相同位置的那些条目。可以了

进一步,我必须排除所有那些不是所邀请的用户的request.user条目(只有在用户具有权限的情况下才可以选择此过滤器属性)。

使用django-filter可能吗,如果可以,怎么办?

我的过滤器类:从模型导入事件中导入django_filters

class EventFilter(django_filters.FilterSet):
    class Meta:
        model = Event
        fields = ['location']
Run Code Online (Sandbox Code Playgroud)

我的工作基于:如何使用Django通用视图过滤表?

django filter django-models django-filter django-tables2

5
推荐指数
2
解决办法
3031
查看次数

如何在django中显示csv文件的行?

我有一个django应用程序,它允许用户上传一个csv文件,比如大学排名的csv文件.我必须处理已上传的数据.例如,灰显任何具有字符串值的列并计算平均值和标准值.列的所有值的偏差.为此,我使用Pandas并将csv文件转换为pandas数据帧.

如何使用django显示csv文件中的数据集?列名称不能进行硬编码,因为用户可能会上传任何csv文件.我检查了django-tables2并做了以下事情

csvfile = request.FILES['csv_file']
data = pd.read_csv(csvfile.name)
context = {'loaded_data': data}
return render(request, "dataflow/table.html", context)
Run Code Online (Sandbox Code Playgroud)

但我得到了错误 ValueError: Expected table or queryset, not DataFrame

django pandas django-tables2

5
推荐指数
1
解决办法
3296
查看次数

如何在 django-tables2 列中使用用户权限

使用 djang-tables2 自定义表作为:

表.py:

import django_tables2 as tables
from django_tables2.utils import A
from .models import Person

class PersonTable(tables.Table):

    view_column = tables.LinkColumn('person:pessoas_detail', args=[A('pk')])

    class Meta:
        model = Person
Run Code Online (Sandbox Code Playgroud)

视图.py:

from .models import Person

class ListView(SingleTableView):
    model = Person
    table_class = PersonTable
Run Code Online (Sandbox Code Playgroud)

我需要检查 view_column 上的 FOO 权限。因为 view_column 是一个类属性,我不能使用装饰器作为@permission_required。

可能我可以调用除 tables.LinkColumn 之外的其他内容来测试权限,然后返回该列。但是,为了做到这一点,我需要访问用户对象(可能来自请求对象),此时我无权访问。

有没有更简单的方法来做到这一点?

基本上,这个想法是仅在有权限访问或根本不显示时才显示列。

python django permissions django-class-based-views django-tables2

4
推荐指数
1
解决办法
1223
查看次数

django 表如何检测表是否为空

我是 Django 和 Web 开发的新手,基于示例和 SO 帮助,我拼凑了一些采用模型并将其呈现在 Django 表中的东西。我的模板代码基本如下:

{% block content %}
{% load static %}
{% load render_table from django_tables2 %}
 <div class="function-page">
     <div class="table-form">
        <div class="function-container">
                {% render_table reviews %}
        </div>
     </div>
 </div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

观点如下:

@login_required(login_url="login/")
def review(request):
    table = DummyTable(DummyModel.objects.all())
    form = DummyForm()
    RequestConfig(request, paginate={"per_page": 10}).configure(table)
    return render(request, 'review.html', {'reviews': table, 'DummyForm': form})
Run Code Online (Sandbox Code Playgroud)

这工作正常。但是,我想做的是向用户显示一条消息,说数据库表为空时没有记录。在当前设置中,它显示了一个带有列的空表,从可用性的角度来看,这可能不是最好的。

django django-templates django-views django-tables2

4
推荐指数
2
解决办法
3104
查看次数

使用Django表2,你如何用省略号截断一个长文本字段?

我正在使用django-tables2并且我有一个包含很长文本的字段。

django-table2 长文本

我想像这样截断:

django-table2 缩短的文本

这是一个引导表:

class EntryRecordTable(tables.Table):
    ...
    comment = tables.Column(accessor=A('Comment'))

    class Meta:
        template_name = 'django_tables2/bootstrap-responsive.html'
        attrs = {'class': 'table table-bordered'}
        orderable = False
        empty_text = 'No entries for selected dates'
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个关于在引导表中截断文本的答案,但它使所有行成为一行并且截断了太多。我怎样才能在代码中做到这一点?

django django-tables2

4
推荐指数
2
解决办法
1013
查看次数

在 Django_tables2 列上使用 linkify 选项来创建链接

我想使用API Reference 的 Columns中的 linkify 添加到列表视图的链接。我正在使用 Django 2 和 Django_tables2 v 2.0.0b3

我有一个带有两个上下文变量的 URL name,它们是从 ListView 和 slug 字段传递的species

网址.py

app_name = 'main'

urlpatterns = [
#The list view
path('genus/<slug:name>/species/', views.SpeciesListView.as_view(), name='species_list'),
# The Detail view
path('genus/<name>/species/<slug:species>', views.SpeciesDetailView.as_view(), name='species'),
]
Run Code Online (Sandbox Code Playgroud)

如果我手动输入 URL,则当前可以访问 DetailView。

我想使用可以输入元组(viewname,args/kwargs)的选项。

对于tables.py我尝试过:

class SpeciesTable(tables.Table):
    species =tables.Column(linkify=('main:species', {'name': name,'slug':species}))
Run Code Online (Sandbox Code Playgroud)

这给了一个NameError: name 'species' is not defined.

species =tables.Column(linkify=('main:species', {'name': kwargs['name'],'slug':kwargs['species']}))
Run Code Online (Sandbox Code Playgroud)

这给了一个NameError: name 'kwargs' is not defined.

我还尝试将以下变量更改为字符串:

species =tables.Column(linkify=('main:species', {'name': …
Run Code Online (Sandbox Code Playgroud)

django django-tables2

4
推荐指数
1
解决办法
6046
查看次数

Django_tables2 类定义中的条件语句

我正在尝试根据我的对象值之一更改表行的格式。我知道如何将行属性传递给我的模板,但不知道在决定我的行在类定义中的外观时如何使用当前记录。见下文:

class OrderTable(tables.Table):
    my_id = tables.Column(verbose_name="Order number")
    status = tables.Column(verbose_name="Order status")

    class Meta:
        model = Order

        row_attrs = {
            "class": lambda record: record.status
        }
Run Code Online (Sandbox Code Playgroud)

这是我在 django_tables2 文档中读到的内容。然而,当尝试添加一些“if”时,它似乎返回 lambda 函数对象而不是值:

class OrderTable(tables.Table):
    my_id = tables.Column(verbose_name="Order number")
    status = tables.Column(verbose_name="Order status")

    class Meta:
        model = Order

        print(lambda record: record.status)

        if lambda record: record.status = '0':
            row_attrs = {
                "class": "table-success"
            }
        else:
            row_attrs = {
                "class": ""
            }
Run Code Online (Sandbox Code Playgroud)

我的日志中打印的内容是:<function ZamTable.Meta.<lambda> at 0x000001F7743CE430>

我也不知道如何使用“记录”属性创建自己的函数。我应该将什么传递给新创建的函数?

class OrderTable(tables.Table):
    my_id = tables.Column(verbose_name="Order number")
    status = …
Run Code Online (Sandbox Code Playgroud)

django django-tables2

4
推荐指数
1
解决办法
651
查看次数