我已經使用了庫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. 更改Swing GUI的默認外觀和實時
- 5. 如何更改android中滾動視圖的默認外觀?
- 6. 將R工作室外觀更改爲默認
- 7. 更改netbeans GUI控件的默認外觀
- 8. 更改UISearchDisplayController外觀
- 9. 鍵盤外觀默認爲解除UIKeyboardAppearanceDefault
- 10. 套裝的外觀恢復爲默認
- 11. Swing UIManager默認系統外觀
- 12. 如何設置默認的UISegmentedControl外觀?
- 13. 忽略默認外觀和感覺Java
- 14. 是否可以更改Rave報表預覽表單的外觀?
- 15. 更改默認庫
- 16. 自定義文本框不改變默認的外觀
- 17. 更改WinForm控件項目的默認外觀是否可行或實用?
- 18. 如何更改下拉列表中的默認空白默認值(更改後)
- 19. MFC CdockablePane更改外觀
- 20. 更改UIStepper的外觀
- 21. 更改uitextfield的外觀
- 22. UITabBarController修改[更多...]外觀
- 23. 更改Swing的外觀
- 24. .htaccess - 更改URL的外觀
- 25. Swift更改Uitabcontroller的外觀?
- 26. 更改光標的外觀
- 27. 更改gridview的外觀
- 28. DBAppender - 如何更改默認表名稱?
- 29. 如何更改Qt表單的外觀和感覺?
- 30. VB.NET Windows APP表單更改外觀(不需要)