重命名django过滤器中的字段名以显示
在django filters中的django应用程序上显示时,是否有方法重命名字段名? 过滤器.py重命名django过滤器中的字段名以显示,django,django-filter,Django,Django Filter,在django filters中的django应用程序上显示时,是否有方法重命名字段名? 过滤器.py import django_filters as df from .models import Books class BooksListFilter(df.FilterSet): class Meta: model = Books fields = ['name'] 我在数据库中的字段名是“name”,但我希望它在Django应用程序中显示为“BookName”。我
import django_filters as df
from .models import Books
class BooksListFilter(df.FilterSet):
class Meta:
model = Books
fields = ['name']
我在数据库中的字段名是“name”,但我希望它在Django应用程序中显示为“BookName”。我怎样才能做到这一点
编辑:模板文件
{% load bootstrap3 %}
{% load render_table from django_tables2 %}
{% load crispy_forms_tags %}
{% block content %}
{% render_table table %}
<form action="" method="get">
{% crispy filter.form filter.form.helper %}
<input type="submit" value="Filter Results"/>
</form>
{% endblock content %}
{%load bootstrap3%}
{%load render_Tables from django_Tables 2%}
{%load crispy_forms_tags%}
{%block content%}
{%render_table%}
{%crispy filter.form filter.form.helper%}
{%endblock内容%}
您可以使用参数显式定义字段并将字段与模型链接:
class BooksListFilter(df.FilterSet):
new_name = df.CharFilter(field_name='name')
class Meta:
model = Books
fields = ['new_name']
如果要更改标签,请使用:
class BooksListFilter(django_filters.FilterSet):
name = django_filters.CharFilter(label='Book Name')
class Meta:
model = Books
fields = ['name']
如果要更改筛选字段名(表示要在数据库的其他字段中搜索)
如回答
顺便说一句,这些文档与最新的2.0版本有点过时,
name
参数应该是field\u name
。感谢您的回复,我目前使用的是1.11版,它在itI中不起作用。我在显示屏上看到了这个[无效名称]field@Aishaatique你们使用模板吗?在那里也将名称更改为新名称。我有一个模板,但没有在那里明确指定字段名,我已经添加了模板文件
class BooksListFilter(django_filters.FilterSet):
new_name = django_filters.CharFilter(field_name='name')
class Meta:
model = Books
fields = ['new_name']