我试图通过单击CheckBoxColumn中的上部复选框来选择表中的所有行,并使用以下定义:
selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
Run Code Online (Sandbox Code Playgroud)
但是没有选择行,还有什么我需要做的吗?我使用的是django 1.4.1和django_tables2 0.13.0.
我正在使用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 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
我需要在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应用程序,它允许用户上传一个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
使用 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
我是 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-tables2并且我有一个包含很长文本的字段。
我想像这样截断:
这是一个引导表:
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)
我已经尝试过这个关于在引导表中截断文本的答案,但它使所有行成为一行并且截断了太多。我怎样才能在代码中做到这一点?
我想使用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) 我正在尝试根据我的对象值之一更改表行的格式。我知道如何将行属性传递给我的模板,但不知道在决定我的行在类定义中的外观时如何使用当前记录。见下文:
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)