我已经使用了库django-filter,它默认支持自己的过滤器表单。我使用模板中的{{filter.form}}将其打印出来。有没有一种方法可以根据我自己的需要进行配置和自定义,这样我就不会采用“Φ”这个词,而是其他的东西?django-filter更改默认表单外观
0
A
回答
0
此字(这是英语滤波器)可以通过将模型的属性使用help_text
属性进行配置。我建议只发布enligsh翻译是stackoverflow,以便非希腊人民将能够回答。
也可以使用FILTERS_HELP_TEXT_FILTER=False
设置(http://django-filter.readthedocs.org/en/latest/ref/settings.html)完全禁用此文本(过滤器)。
0
我面对这个问题也,我的解决办法如下:
filters.py:
from django import forms
from django.utils.translation import ugettext as _
from django.forms.utils import flatatt
from django.contrib.auth.models import User
from .models import Zone, Location, Note, Price, Item, Unit, Category
import django_filters
class PriceFilter(django_filters.FilterSet):
STATUS_CHOICES = (
(0, _('Pending')),
(1, _('Approved')),
(2, _('Deleted')),
)
location = django_filters.ModelChoiceFilter(queryset=Location.objects.all(), widget=forms.Select(attrs={'class': 'form-control form-control-sm'}))
item = django_filters.ModelChoiceFilter(queryset=Item.objects.all(), widget=forms.Select(attrs={'class': 'form-control form-control-sm'}))
user = django_filters.ModelChoiceFilter(queryset=User.objects.all(), widget=forms.Select(attrs={'class': 'form-control form-control-sm'}))
status = django_filters.ChoiceFilter(choices=STATUS_CHOICES, widget=forms.Select(attrs={'class': 'form-control form-control-sm'}))
date = django_filters.DateFromToRangeFilter(widget=django_filters.widgets.RangeWidget(attrs={'class': 'datepicker form-control form-control-sm', 'placeholder': 'YYYY-MM-DD'}))
class Meta:
model = Price
fields = ('location', 'item', 'unit', 'date', 'status', 'user', 'approved',)
views.py:
from django.shortcuts import get_object_or_404, render, redirect
from django.urls import reverse
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
from django.views import generic, View
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.db.models import Count
from .models import Zone, Location, Note, Price, Item, Unit, Category
from .forms import NoteForm
from .filters import PriceFilter
...
class IndexView(generic.ListView):
template_name = 'price/index.html'
def get(self, request):
price_list = Price.objects.all().order_by('-date').annotate(num_notes=Count('note'))
price_filter = PriceFilter(request.GET, queryset=price_list)
paginator = Paginator(price_filter.qs, 30)
page = request.GET.get('page')
try:
prices = paginator.page(page)
except PageNotAnInteger:
prices = paginator.page(1)
except EmptyPage:
prices = paginator.page(paginator.num_pages)
index = paginator.page_range.index(prices.number)
max_index = len(paginator.page_range)
start_index = index - 5 if index >= 5 else 0
end_index = index + 5 if index <= max_index - 5 else max_index
page_range = paginator.page_range[start_index:end_index]
return render(request, self.template_name, {
'prices': prices,
'filter': price_filter.form,
'page_range': page_range,
})
的index.html :
{% extends "base/base.html" %}
{% load i18n %}
{% load mptt_tags %}
{% block content %}
<div class="card border-light mb-3">
<div class="card-header">{% trans 'Filter' %}</div>
<div class="card-body">
<form method="get">
<div class="form-row">
<div class="form-group col-md-2">
<label for="inputEmail4" class="col-form-label">{% trans 'Item' %}</label>
{{ filter.item }}
</div>
<div class="form-group col-md-2">
<label for="inputEmail4" class="col-form-label">{% trans 'Location' %}</label>
{{ filter.location }}
</div>
<div class="form-group col-md-2">
<label for="inputEmail4" class="col-form-label">{% trans 'Author' %}</label>
{{ filter.user }}
</div>
<div class="form-group col-md-3">
<label for="inputEmail4" class="col-form-label">{% trans 'Date' %}</label>
<div class="input-group mb-3 mb-sm-0">
{{ filter.date }}
</div>
</div>
<div class="form-group col-md-2">
<label for="inputEmail4" class="col-form-label">{% trans 'Status' %}</label>
{{ filter.status }}
</div>
<div class="form-group col-md-1">
<label for="inputEmail4" class="col-form-label">{% trans 'Actions' %}</label>
<button type="submit" class="btn btn-sm btn-primary">{% trans 'Filter' %}</button>
</div>
</div>
</form>
</div>
</div>
你可以像Django的窗体一样使用过滤器,但它也有一些特定的小部件。我建议你检查文件: https://django-filter.readthedocs.io/en/develop/ref/filters.html#widget
相关问题
- 1. OSM更改默认标记外观
- 2. 我如何更改列表活动列表的默认外观?
- 3. 更改表单按钮的外观
- 4. 怎么到默认外观
- 5. 更改netbeans GUI控件的默认外观
- 6. 将R工作室外观更改为默认
- 7. 如何更改android中滚动视图的默认外观?
- 8. 更改Swing GUI的默认外观和实时
- 9. 如何更改单选按钮的默认外观,而不是功能?
- 10. 更改UISearchDisplayController外观
- 11. 更改外观2013
- 12. 更改菜单项目外观
- 13. 如何设置默认的UISegmentedControl外观?
- 14. 恢复默认的导航栏外观
- 15. Swing UIManager默认系统外观
- 16. 如何找回默认的Xcode外观
- 17. 键盘外观默认为解除UIKeyboardAppearanceDefault
- 18. 当前位置注释默认外观?
- 19. setUndecorated无法使用非默认外观
- 20. 套装的外观恢复为默认
- 21. 忽略默认外观和感觉Java
- 22. 更改默认pythonpath
- 23. 更改默认SKScene
- 24. 更改默认库
- 25. 是否可以更改Rave报表预览表单的外观?
- 26. 配置单元外连接:如何更改默认空值
- 27. 自定义文本框不改变默认的外观
- 28. 是否有反正更改默认的警报窗口的外观和感觉
- 29. 更改默认的外观和感觉.setError(“我不喜欢你的粉红色”);
- 30. 更改WinForm控件项目的默认外观是否可行或实用?