Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重命名django过滤器中的字段名以显示_Django_Django Filter - Fatal编程技术网

重命名django过滤器中的字段名以显示

重命名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”。我

在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”。我怎样才能做到这一点

编辑:模板文件

{% 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']