Django Tables 2 过滤字段,但使用显示名称?
Django Tables 2 Filter field, but use the display name?
我有这个型号:
DRAFT = 'draft'
IN_PROGRESS = 'in_progress'
FINISHED = 'finished'
STATUS_CHOICES = (
(DRAFT, 'Entwurf'),
(IN_PROGRESS, 'In Arbeit'),
(FINISHED, 'Erledigt'),
)
class Invoice(TimeStampModel):
status = models.CharField('Status', choices=STATUS_CHOICES, max_length=50)
这个过滤器是我用 django tables 2 插件构建的:
class InvoiceFilter(django_filters.FilterSet):
class Meta:
model = Invoice
fields = {
'name': ['icontains'],
'status': ['icontains'],
}
我的过滤器在我的页面上毫无问题地呈现,我可以使用它。现在的问题是,如果我尝试使用德语单词搜索状态,例如 Entwurf
过滤器总是 returns 我没有项目。但是,如果我过滤 draft
,我会得到所有具有此状态的项目。所以我的问题是:如何让过滤器查找状态字段的显示名称?
甚至更好:是否可以只在状态字段中创建 select 而不是正常搜索?
感谢您的回答!
好的。我应该更仔细地查看 django 表 2 的文档。我找到了我的解决方案:
class InvoiceFilter(django_filters.FilterSet):
status = django_filters.TypedChocieFilter(choices=STATUS_CHOICES)
class Meta:
model = Invoice
fields = {
'name': ['icontains'],
}
我有这个型号:
DRAFT = 'draft'
IN_PROGRESS = 'in_progress'
FINISHED = 'finished'
STATUS_CHOICES = (
(DRAFT, 'Entwurf'),
(IN_PROGRESS, 'In Arbeit'),
(FINISHED, 'Erledigt'),
)
class Invoice(TimeStampModel):
status = models.CharField('Status', choices=STATUS_CHOICES, max_length=50)
这个过滤器是我用 django tables 2 插件构建的:
class InvoiceFilter(django_filters.FilterSet):
class Meta:
model = Invoice
fields = {
'name': ['icontains'],
'status': ['icontains'],
}
我的过滤器在我的页面上毫无问题地呈现,我可以使用它。现在的问题是,如果我尝试使用德语单词搜索状态,例如 Entwurf
过滤器总是 returns 我没有项目。但是,如果我过滤 draft
,我会得到所有具有此状态的项目。所以我的问题是:如何让过滤器查找状态字段的显示名称?
甚至更好:是否可以只在状态字段中创建 select 而不是正常搜索?
感谢您的回答!
好的。我应该更仔细地查看 django 表 2 的文档。我找到了我的解决方案:
class InvoiceFilter(django_filters.FilterSet):
status = django_filters.TypedChocieFilter(choices=STATUS_CHOICES)
class Meta:
model = Invoice
fields = {
'name': ['icontains'],
}